%-12345X@PJL ENTER LANGUAGE = PostScript
%!PS
%%Version: 3.15
%%DocumentFonts: (atend)
%%Pages: (atend)
%%EndComments
%ident	"@(#)lp:filter/postscript/postscript/dpost.ps	1.1.2.1"
%
% Version 3.15 prologue for troff files.
%

/#copies 1 store
/aspectratio 1 def
/formsperpage 1 def
/landscape false def
/linewidth .3 def
/magnification 1 def
/margin 0 def
/orientation 0 def
/resolution 720 def
/xoffset 0 def
/yoffset 0 def

/roundpage true def
/useclippath true def
/pagebbox [0 0 612 792] def

/R  /Times-Roman def
/I  /Times-Italic def
/B  /Times-Bold def
/BI /Times-BoldItalic def
/H  /Helvetica def
/HI /Helvetica-Oblique def
/HB /Helvetica-Bold def
/HX /Helvetica-BoldOblique def
/CW /Courier def
/CO /Courier def
/CI /Courier-Oblique def
/CB /Courier-Bold def
/CX /Courier-BoldOblique def
/PA /Palatino-Roman def
/PI /Palatino-Italic def
/PB /Palatino-Bold def
/PX /Palatino-BoldItalic def
/Hr /Helvetica-Narrow def
/Hi /Helvetica-Narrow-Oblique def
/Hb /Helvetica-Narrow-Bold def
/Hx /Helvetica-Narrow-BoldOblique def
/KR /Bookman-Light def
/KI /Bookman-LightItalic def
/KB /Bookman-Demi def
/KX /Bookman-DemiItalic def
/AR /AvantGarde-Book def
/AI /AvantGarde-BookOblique def
/AB /AvantGarde-Demi def
/AX /AvantGarde-DemiOblique def
/NR /NewCenturySchlbk-Roman def
/NI /NewCenturySchlbk-Italic def
/NB /NewCenturySchlbk-Bold def
/NX /NewCenturySchlbk-BoldItalic def
/ZD /ZapfDingbats def
/ZI /ZapfChancery-MediumItalic def
/VR /Varitimes#Roman def
/VI /Varitimes#Italic def
/VB /Varitimes#Bold def
/VX /Varitimes#BoldItalic def
/S  /S def
/S1 /S1 def
/GR /Symbol def

/inch {72 mul} bind def
/min {2 copy gt {exch} if pop} bind def

/setup {
	counttomark 2 idiv {def} repeat pop

	landscape {/orientation 90 orientation add def} if
	/scaling 72 resolution div def
	linewidth setlinewidth
	1 setlinecap

	pagedimensions
	xcenter ycenter translate
	orientation neg rotate
	width 2 div neg height 2 div translate
	xoffset inch yoffset inch translate
	margin 2 div dup neg translate
	magnification dup aspectratio mul scale
	scaling scaling scale

	/Symbol /S Sdefs cf
	/Times-Roman /S1 S1defs cf
	0 0 moveto
} def

/pagedimensions {
	useclippath userdict /gotpagebbox known not and {
		/pagebbox [clippath pathbbox newpath] def
		roundpage currentdict /roundpagebbox known and {roundpagebbox} if
	} if
	pagebbox aload pop
	4 -1 roll exch 4 1 roll 4 copy
	landscape {4 2 roll} if
	sub /width exch def
	sub /height exch def
	add 2 div /xcenter exch def
	add 2 div /ycenter exch def
	userdict /gotpagebbox true put
} def

/pagesetup {
	/page exch def
	currentdict /pagedict known currentdict page known and {
		page load pagedict exch get cvx exec
	} if
} def

/decodingdefs [
	{counttomark 2 idiv {y moveto show} repeat}
	{neg /y exch def counttomark 2 idiv {y moveto show} repeat}
	{neg moveto {2 index stringwidth pop sub exch div 0 32 4 -1 roll widthshow} repeat}
	{neg moveto {spacewidth sub 0.0 32 4 -1 roll widthshow} repeat}
	{counttomark 2 idiv {y moveto show} repeat}
	{neg setfunnytext}
] def

/setdecoding {/t decodingdefs 3 -1 roll get bind def} bind def

/w {neg moveto show} bind def
/m {neg dup /y exch def moveto} bind def
/done {/lastpage where {pop lastpage} if} def

/f {
	dup /font exch def findfont exch
	dup /ptsize exch def scaling div dup /size exch def scalefont setfont
	linewidth ptsize mul scaling 10 mul div setlinewidth
	/spacewidth ( ) stringwidth pop def
} bind def

/changefont {
	/fontheight exch def
	/fontslant exch def
	currentfont [
		1 0
		fontheight ptsize div fontslant sin mul fontslant cos div
		fontheight ptsize div
		0 0
	] makefont setfont
} bind def

/sf {f} bind def

/cf {
	dup length 2 idiv
	/entries exch def
	/chtab exch def
	/newfont exch def

	findfont dup length 1 add dict
	/newdict exch def
	{1 index /FID ne {newdict 3 1 roll put} {pop pop} ifelse} forall

	newdict /Metrics entries dict put
	newdict /Metrics get
	begin
		chtab aload pop
		1 1 entries {pop def} for
		newfont newdict definefont pop
	end
} bind def

%
% A few arrays used to adjust reference points and character widths in some
% of the printer resident fonts. If square roots are too high try changing
% the lines describing /radical and /radicalex to,
%
%	/radical	[0 -75 550 0]
%	/radicalex	[-50 -75 500 0]
%

/Sdefs [
	/bracketlefttp		[220 500]
	/bracketleftbt		[220 500]
	/bracketrighttp		[-70 380]
	/bracketrightbt		[-70 380]
	/braceleftbt		[220 490]
	/bracketrightex		[220 -125 500 0]
	/radical		[0 0 550 0]
	/radicalex		[-50 0 500 0]
	/parenleftex		[-20 -170 0 0]
	/integral		[100 -50 500 0]
	/infinity		[10 -75 730 0]
] def

/S1defs [
	/underscore		[0 80 500 0]
	/endash			[7 90 650 0]
] def
%%EndProlog
%%BeginSetup
mark
/resolution 720 def
setup
2 setdecoding
%%EndSetup
%%Page: 1 1
save
mark
1 pagesetup
cleartomark restore
%%BeginGlobal
%ident	"@(#)lp:filter/postscript/postscript/draw.ps	1.1.2.1"
%
% Version 3.15 drawing procedures for dpost. Automatically pulled in, but only
% when needed.
%

/inpath false def
/savematrix matrix currentmatrix def

/Dl {
	inpath
		{pop pop neg lineto}
		{newpath neg moveto neg lineto stroke}
	ifelse
} bind def

/De {
	/y1 exch 2 div def
	/x1 exch 2 div def
	neg exch x1 add exch translate
	x1 y1 scale
	0 0 1 0 360
	inpath
		{1 0 moveto arc savematrix setmatrix}
		{newpath arc savematrix setmatrix stroke}
	ifelse
} bind def

/Da {
	/dy2 exch def
	/dx2 exch def
	/dy1 exch def
	/dx1 exch def
	dy1 add neg exch dx1 add exch
	dx1 dx1 mul dy1 dy1 mul add sqrt
	dy1 dx1 neg atan
	dy2 neg dx2 atan
	inpath
		{arc}
		{newpath arc stroke}
	ifelse
} bind def

/DA {
	/dy2 exch def
	/dx2 exch def
	/dy1 exch def
	/dx1 exch def
	dy1 add neg exch dx1 add exch
	dx1 dx1 mul dy1 dy1 mul add sqrt
	dy1 dx1 neg atan
	dy2 neg dx2 atan
	inpath
		{arcn}
		{newpath arcn stroke}
	ifelse
} bind def

/Ds {
	/y2 exch def
	/x2 exch def
	/y1 exch def
	/x1 exch def
	/y0 exch def
	/x0 exch def
	x0 5 x1 mul add 6 div
	y0 5 y1 mul add -6 div
	x2 5 x1 mul add 6 div
	y2 5 y1 mul add -6 div
	x1 x2 add 2 div
	y1 y2 add -2 div
	inpath
		{curveto}
		{newpath x0 x1 add 2 div y0 y1 add -2 div moveto curveto stroke}
	ifelse
} bind def
%%EndGlobal
save mark
16 HB f
5458 516 658 516 Dl
21 HB f
(I)3122 2430 w
(Executable and Linkable Format \(ELF\))4 3828 1 1234 3270 t
cleartomark
showpage
restore
%%EndPage: 1 1
%%Page: 1 2
save
mark
2 pagesetup
16 HB f
5458 516 658 516 Dl
18 HB f
(Contents)1378 682 w
9 HB f
5458 1626 658 1626 Dl
13 HB f
(Preface)1378 1740 w
9 HB f
5458 2106 658 2106 Dl
24 HB f
(1)898 2295 w
13 HB f
(OBJECT FILES)1 932 1 1378 2220 t
10 H f
(Introduction)1378 2340 w
9 H f
(1-1)5170 2340 w
10 H f
(ELF Header)1 541 1 1378 2460 t
9 H f
(1-3)5170 2460 w
10 H f
(Sections)1378 2580 w
9 H f
(1-8)5170 2580 w
10 H f
(String Table)1 541 1 1378 2700 t
9 H f
(1-16)5170 2700 w
10 H f
(Symbol Table)1 613 1 1378 2820 t
9 H f
(1-17)5170 2820 w
10 H f
(Relocation)1378 2940 w
9 H f
(1-21)5170 2940 w
5458 3306 658 3306 Dl
24 HB f
(2)898 3495 w
13 HB f
(PROGRAM LOADING AND DYNAMIC LINKING)4 2845 1 1378 3420 t
10 H f
(Introduction)1378 3540 w
9 H f
(2-1)5170 3540 w
10 H f
(Program Header)1 741 1 1378 3660 t
9 H f
(2-2)5170 3660 w
10 H f
(Program Loading)1 770 1 1378 3780 t
9 H f
(2-7)5170 3780 w
10 H f
(Dynamic Linking)1 735 1 1378 3900 t
9 H f
(2-10)5170 3900 w
5458 4266 658 4266 Dl
24 HB f
(3)898 4455 w
13 HB f
(C LIBRARY)1 708 1 1378 4380 t
10 H f
(C Library)1 406 1 1378 4500 t
9 H f
(3-1)5170 4500 w
5458 4866 658 4866 Dl
24 HB f
(I)898 5055 w
13 HB f
(Index)1378 4980 w
10 H f
(Index)1378 5100 w
9 H f
(I-1)5170 5100 w
9 PB f
( Formats Speci\256cation, Version 1.1)4 1413( Portable)1 851(Tool Interface Standards \(TIS\))3 1249 3 658 7324 t
9 R f
(i)5313 7324 w
cleartomark
showpage
restore
%%EndPage: 1 2
%%Page: 2 3
save
mark
3 pagesetup
9 HB f
(ELF: Executable and Linkable Format)4 1605 1 540 540 t
5400 540 2217 540 Dl
9 R f
(ii)540 7324 w
9 PB f
( Interface Standards \(TIS\))3 1059( Tool)1 535(Portable Formats Speci\256cation, Version 1.1)4 1758 3 1868 7324 t
cleartomark
showpage
restore
%%EndPage: 2 3
%%Page: 3 4
save
mark
4 pagesetup
16 HB f
5458 516 658 516 Dl
20 HB f
(Figures and Tables)2 1828 1 1378 682 t
9 PA f
5458 1596 658 1596 Dl
9 HB f
(Figure 1-1:)1 460 1 658 1730 t
9 H f
( 1-1)1 3392(Object File Format)2 740 2 1168 1730 t
9 HB f
(Figure 1-2:)1 460 1 658 1840 t
9 H f
( 1-2)1 3412(32-Bit Data Types)2 720 2 1168 1840 t
9 HB f
(Figure 1-3:)1 460 1 658 1950 t
9 H f
( 1-3)1 3647(ELF Header)1 485 2 1168 1950 t
9 HB f
(Figure 1-4:)1 460 1 658 2060 t
9 CW f
( ])1 80(e _ i d e n t [)7 404 2 1166 2060 t
9 H f
( 1-5)1 2782(Identi\256cation Indexes)1 845 2 1673 2060 t
9 HB f
(Figure 1-5:)1 460 1 658 2170 t
9 H f
(Data Encoding)1 590 1 1168 2170 t
9 CW f
(E L F D A T A 2 L S B)10 554 1 1781 2170 t
9 H f
(1-6)5170 2170 w
9 HB f
(Figure 1-6:)1 460 1 658 2280 t
9 H f
(Data Encoding)1 590 1 1168 2280 t
9 CW f
(E L F D A T A 2 M S B)10 554 1 1781 2280 t
9 H f
(1-6)5170 2280 w
9 HB f
(Figure 1-7:)1 460 1 658 2390 t
9 H f
(32-bit Intel Architecture Identi\256cation,)3 1480 1 1168 2390 t
9 CW f
(e _ i d e n t)6 354 1 2671 2390 t
9 H f
(1-7)5170 2390 w
9 HB f
(Figure 1-8:)1 460 1 658 2500 t
9 H f
( 1-8)1 3172(Special Section Indexes)2 960 2 1168 2500 t
9 HB f
(Figure 1-9:)1 460 1 658 2610 t
9 H f
( 1-9)1 3512(Section Header)1 620 2 1168 2610 t
9 HB f
(Figure 1-10:)1 510 1 658 2720 t
9 H f
(Section Types,)1 595 1 1218 2720 t
9 CW f
(s h _ t y p e)6 354 1 1836 2720 t
9 H f
(1-10)5170 2720 w
9 HB f
(Figure 1-11:)1 510 1 658 2830 t
9 H f
( 1-11)1 2682(Section Header Table Entry: Index 0)5 1450 2 1218 2830 t
9 HB f
(Figure 1-12:)1 510 1 658 2940 t
9 H f
(Section Attribute Flags,)2 930 1 1218 2940 t
9 CW f
(s h _ f l a g s)7 404 1 2171 2940 t
9 H f
(1-12)5170 2940 w
9 HB f
(Figure 1-13:)1 510 1 658 3050 t
9 CW f
(s h _ l i n k)6 354 1 1216 3050 t
9 H f
(and)1593 3050 w
9 CW f
(s h _ i n f o)6 354 1 1791 3050 t
9 H f
(Interpretation 1-13)1 3182 1 2168 3050 t
9 HB f
(Figure 1-14:)1 510 1 658 3160 t
9 H f
( 1-13)1 3467(Special Sections)1 665 2 1218 3160 t
9 HB f
(Figure 1-15:)1 510 1 658 3270 t
9 H f
( 1-16)1 3307(String Table Indexes)2 825 2 1218 3270 t
9 HB f
(Figure 1-16:)1 510 1 658 3380 t
9 H f
( 1-17)1 3347(Symbol Table Entry)2 785 2 1218 3380 t
9 HB f
(Figure 1-17:)1 510 1 658 3490 t
9 H f
(Symbol Binding,)1 650 1 1218 3490 t
9 CW f
(E L F 3 2 _ S T _ B I N D)12 654 1 1891 3490 t
9 H f
(1-18)5170 3490 w
9 HB f
(Figure 1-18:)1 510 1 658 3600 t
9 H f
(Symbol Types,)1 595 1 1218 3600 t
9 CW f
(E L F 3 2 _ S T _ T Y P E)12 654 1 1836 3600 t
9 H f
(1-19)5170 3600 w
9 HB f
(Figure 1-19:)1 510 1 658 3710 t
9 H f
( 1-20)1 3002(Symbol Table Entry: Index 0)4 1130 2 1218 3710 t
9 HB f
(Figure 1-20:)1 510 1 658 3820 t
9 H f
( 1-21)1 3402(Relocation Entries)1 730 2 1218 3820 t
9 HB f
(Figure 1-21:)1 510 1 658 3930 t
9 H f
( 1-22)1 3392(Relocatable Fields)1 740 2 1218 3930 t
9 HB f
(Figure 1-22:)1 510 1 658 4040 t
9 H f
( 1-23)1 3437(Relocation Types)1 695 2 1218 4040 t
9 HB f
(Figure 2-1:)1 460 1 658 4150 t
9 H f
( 2-2)1 3467(Program Header)1 665 2 1168 4150 t
9 HB f
(Figure 2-2:)1 460 1 658 4260 t
9 H f
(Segment Types,)1 655 1 1168 4260 t
9 CW f
(p _ t y p e)5 304 1 1846 4260 t
9 H f
(2-3)5170 4260 w
9 HB f
(Figure 2-3:)1 460 1 658 4370 t
9 H f
( 2-4)1 3467(Note Information)1 665 2 1168 4370 t
9 HB f
(Figure 2-4:)1 460 1 658 4480 t
9 H f
( 2-5)1 3182(Example Note Segment)2 950 2 1168 4480 t
9 HB f
(Figure 2-5:)1 460 1 658 4590 t
9 H f
( 2-7)1 3517(Executable File)1 615 2 1168 4590 t
9 HB f
(Figure 2-6:)1 460 1 658 4700 t
9 H f
( 2-7)1 3037(Program Header Segments)2 1095 2 1168 4700 t
9 HB f
(Figure 2-7:)1 460 1 658 4810 t
9 H f
( 2-8)1 3102(Process Image Segments)2 1030 2 1168 4810 t
9 HB f
(Figure 2-8:)1 460 1 658 4920 t
9 H f
( 2-9)1 2347(Example Shared Object Segment Addresses)4 1785 2 1168 4920 t
9 HB f
(Figure 2-9:)1 460 1 658 5030 t
9 H f
( 2-12)1 3442(Dynamic Structure)1 740 2 1168 5030 t
9 HB f
(Figure 2-10:)1 510 1 658 5140 t
9 H f
(Dynamic Array Tags,)2 840 1 1218 5140 t
9 CW f
(d _ t a g)4 254 1 2081 5140 t
9 H f
(2-12)5170 5140 w
9 HB f
(Figure 2-11:)1 510 1 658 5250 t
9 H f
( 2-17)1 3357(Global Offset Table)2 775 2 1218 5250 t
9 HB f
(Figure 2-12:)1 510 1 658 5360 t
9 H f
( 2-17)1 2752(Absolute Procedure Linkage Table)3 1380 2 1218 5360 t
9 HB f
(Figure 2-13:)1 510 1 658 5470 t
9 H f
( 2-18)1 2252(Position-Independent Procedure Linkage Table)3 1880 2 1218 5470 t
9 HB f
(Figure 2-14:)1 510 1 658 5580 t
9 H f
( 2-19)1 3347(Symbol Hash Table)2 785 2 1218 5580 t
9 HB f
(Figure 2-15:)1 510 1 658 5690 t
9 H f
( 2-20)1 3432(Hashing Function)1 700 2 1218 5690 t
9 HB f
(Figure 3-1:)1 460 1 658 5800 t
9 CW f
(l i b c)3 204 1 1166 5800 t
9 H f
( 3-1)1 2457(Contents, Names without Synonyms)3 1450 2 1393 5800 t
9 HB f
(Figure 3-2:)1 460 1 658 5910 t
9 CW f
(l i b c)3 204 1 1166 5910 t
9 H f
( 3-1)1 2582(Contents, Names with Synonyms)3 1325 2 1393 5910 t
9 HB f
(Figure 3-3:)1 460 1 658 6020 t
9 CW f
(l i b c)3 204 1 1166 6020 t
9 H f
( 3-2)1 2272( External Data Symbols)3 940(Contents, Global)1 695 3 1393 6020 t
9 PB f
( Formats Speci\256cation, Version 1.1)4 1413( Portable)1 851(Tool Interface Standards \(TIS\))3 1249 3 658 7324 t
9 R f
(iii)5263 7324 w
cleartomark
showpage
restore
%%EndPage: 3 4
%%Page: 1 5
save
mark
5 pagesetup
16 HB f
5458 516 658 516 Dl
(Preface)658 682 w
14 HB f
(ELF: Executable and Linking Format)4 2423 1 658 1062 t
10 PA f
(The Executable and Linking Format was originally developed and published by UNIX System Labora-)13 4530 1 658 1302 t
( Tool Interface Standards committee)4 1602( The)1 217(tories \(USL\) as part of the Application Binary Interface \(ABI\).)9 2703 3 658 1422 t
(\(TIS\) has selected the evolving ELF standard as a portable object \256le format that works on 32-bit Intel)17 4463 1 658 1542 t
(Architecture environments for a variety of operating systems.)7 2726 1 658 1662 t
(The ELF standard is intended to streamline software development by providing developers with a set of)15 4609 1 658 1842 t
(binary interface de\256nitions that extend across multiple operating environments. This should reduce the)12 4570 1 658 1962 t
(number of different interface implementations, thereby reducing the need for recoding and recompiling)12 4588 1 658 2082 t
(code.)658 2202 w
14 HB f
(About This Document)2 1450 1 658 2582 t
10 PA f
(This document is intended for developers who are creating object or executable \256les on various 32-bit)15 4481 1 658 2822 t
( is divided into the following three parts:)7 1809( It)1 117(environment operating systems.)2 1426 3 658 2942 t
10 S f
()816 3122 w
cleartomark restore
%%BeginGlobal
/build_bx {
    pop
    size 2 div /side exch def
    currentpoint
    newpath
    moveto
    0 side rlineto
    side 0 rlineto
    0 side neg rlineto
    closepath
    fill
} def
%%EndGlobal
save mark
10 S f
816 3122 m
50 build_bx
866 3122 m
10 PA f
( the ELF object \256le format for the three main types of object \256les.)13 2846( describes)1 442(Part 1, ``Object Files'')3 931 3 932 3122 t
10 S f
()816 3302 w
816 3302 m
50 build_bx
866 3302 m
10 PA f
( the object \256le information and system)6 1691( describes)1 442( and Dynamic Linking'')3 1049( Loading)1 420(Part 2, ``Program)2 753 5 932 3302 t
(actions that create running programs.)4 1663 1 932 3422 t
10 S f
()816 3602 w
816 3602 m
50 build_bx
866 3602 m
10 PA f
( the symbols contained in)4 1129( lists)1 208(Part 3, ``C Library'')3 847 3 932 3602 t
10 CW f
(l i b s y s)5 335 1 3139 3602 t
10 PA f
( and)1 194( C)1 121(, the standard ANSI)3 882 3 3471 3602 t
10 CW f
(l i b c)3 225 1 4691 3602 t
10 PA f
(routines,)4938 3602 w
(and the global data symbols required by the)7 1950 1 932 3722 t
10 CW f
(l i b c)3 225 1 2905 3722 t
10 PA f
(routines.)3152 3722 w
 /oldm /m load def /m {} def
 gsave newpath 658 -3942 moveto
 928 -3942 lineto
 928 -4242 lineto
 658 -4242 lineto
 closepath 0.999 setgray fill grestore
 /m /oldm load def
7 HB f
928 3942 658 3942 Dl
928 4242 928 3942 Dl
658 4242 928 4242 Dl
658 3942 658 4242 Dl
799 4362 799 4242 Dl
(NOTE)700 4110 w
9 H f
(References to X86 architecture have been changed to Intel Architecture.)9 2880 1 1018 4002 t
9 PB f
( Formats Speci\256cation, Version 1.1)4 1413( Portable)1 782(Tool Interface Standards \(TIS\))3 1249 3 658 7324 t
9 R f
(1)5293 7324 w
cleartomark
showpage
restore
%%EndPage: 1 5
%%Page: 1 6
save
mark
6 pagesetup
16 HB f
5458 516 658 516 Dl
36 HB f
(1)898 808 w
18 HB f
(OBJECT FILES)1 1294 1 1378 682 t
9 HB f
5458 1626 658 1626 Dl
13 HB f
(Introduction)1378 1740 w
9 H f
(1-1)5170 1740 w
10 H f
(File Format)1 506 1 1378 1860 t
9 H f
(1-1)5170 1860 w
10 H f
(Data Representation)1 921 1 1378 1980 t
9 H f
(1-2)5170 1980 w
5458 2346 658 2346 Dl
13 HB f
(ELF Header)1 724 1 1378 2460 t
9 H f
(1-3)5170 2460 w
10 H f
(ELF Identi\256cation)1 776 1 1378 2580 t
9 H f
(1-5)5170 2580 w
10 H f
(Machine Information)1 909 1 1378 2700 t
9 H f
(1-7)5170 2700 w
5458 3066 658 3066 Dl
13 HB f
(Sections)1378 3180 w
9 H f
(1-8)5170 3180 w
10 H f
(Special Sections)1 742 1 1378 3300 t
9 H f
(1-13)5170 3300 w
5458 3666 658 3666 Dl
13 HB f
(String Table)1 751 1 1378 3780 t
9 H f
(1-16)5170 3780 w
5458 4146 658 4146 Dl
13 HB f
(Symbol Table)1 846 1 1378 4260 t
9 H f
(1-17)5170 4260 w
10 H f
(Symbol Values)1 669 1 1378 4380 t
9 H f
(1-20)5170 4380 w
5458 4746 658 4746 Dl
13 HB f
(Relocation)1378 4860 w
9 H f
(1-21)5170 4860 w
10 H f
(Relocation Types)1 775 1 1378 4980 t
9 H f
(1-22)5170 4980 w
9 PB f
( Formats Speci\256cation, Version 1.1)4 1413( Portable)1 736(Tool Interface Standards \(TIS\))3 1249 3 658 7324 t
9 R f
(i)5313 7324 w
cleartomark
showpage
restore
%%EndPage: 1 6
%%Page: 1 7
save
mark
7 pagesetup
16 HB f
5458 516 658 516 Dl
(Introduction)658 682 w
10 PA f
( are three)2 415( There)1 305(Part 1 describes the iABI object \256le format, called ELF \(Executable and Linking Format\).)13 3876 3 658 1042 t
(main types of object \256les.)4 1115 1 658 1162 t
10 S f
()816 1342 w
816 1342 m
50 build_bx
866 1342 m
10 PA f
(A)932 1342 w
10 PI f
(relocatable \256le)1 570 1 1035 1342 t
10 PA f
(holds code and data suitable for linking with other object \256les to create an execut-)14 3607 1 1630 1342 t
(able or a shared object \256le.)5 1172 1 932 1462 t
10 S f
()816 1642 w
816 1642 m
50 build_bx
866 1642 m
10 PA f
(An)932 1642 w
10 PI f
(executable \256le)1 560 1 1093 1642 t
10 PA f
(holds a program suitable for execution; the \256le speci\256es how)9 2682 1 1678 1642 t
10 CW f
(e x e c)3 225 1 4383 1642 t
10 PA f
(\(BA)4613 1642 w
10 S f
(_)4785 1642 w
10 PA f
(OS\) creates)1 495 1 4835 1642 t
(a program's process image.)3 1211 1 932 1762 t
10 S f
()816 1942 w
816 1942 m
50 build_bx
866 1942 m
10 PA f
(A)932 1942 w
10 PI f
(shared object \256le)2 662 1 1035 1942 t
10 PA f
( the link editor [see)4 848( First,)1 275(holds code and data suitable for linking in two contexts.)9 2478 3 1722 1942 t
10 CW f
(l d)1 115 1 930 2062 t
10 PA f
(\(SD)1050 2062 w
10 S f
(_)1213 2062 w
10 PA f
(CMD\)] may process it with other relocatable and shared object \256les to create another object)14 4021 1 1263 2062 t
( the dynamic linker combines it with an executable \256le and other shared objects to)14 3622(\256le. Second,)1 557 2 932 2182 t
(create a process image.)3 1015 1 932 2302 t
(Created by the assembler and link editor, object \256les are binary representations of programs intended to)15 4601 1 658 2542 t
( that require other abstract machines, such as shell scripts, are)10 2723( Programs)1 481(execute directly on a processor.)4 1387 3 658 2662 t
(excluded.)658 2782 w
(After the introductory material, Part 1 focuses on the \256le format and how it pertains to building pro-)17 4438 1 658 2962 t
( 2 also describes parts of the object \256le, concentrating on the information necessary to execute)15 4118(grams. Part)1 534 2 658 3082 t
(a program.)1 489 1 658 3202 t
14 HB f
(File Format)1 754 1 658 3582 t
10 PA f
(Object \256les participate in program linking \(building a program\) and program execution \(running a pro-)14 4576 1 658 3822 t
( convenience and ef\256ciency, the object \256le format provides parallel views of a \256le's contents,)14 4071(gram\). For)1 493 2 658 3942 t
( 1-1 shows an object \256le's organization.)6 1725( Figure)1 339(re\257ecting the differing needs of these activities.)6 2085 3 658 4062 t
8 HB f
5338 4222 658 4222 Dl
9 HB f
( File Format)2 510( Object)1 330(Figure 1-1:)1 460 3 658 4322 t
10 PA f
( View)1 257( Execution)1 1049(Linking View)1 604 3 2053 4514 t
10 S f
( ______________________)1 1059( _)1 200(_ _____________________)1 1084 3 1826 4534 t
10 PA f
( header)1 330( ELF)1 929(ELF header)1 508 3 2101 4654 t
10 S f
( ______________________)1 1059( _)1 200(_ _____________________)1 1084 3 1826 4674 t
10 PA f
( header table)2 570( Program)1 689(Program header table)2 959 3 1876 4794 t
10 PI f
(optional)2192 4914 w
10 S f
( ______________________)1 1059( _)1 200(_ _____________________)1 1084 3 1826 4934 t
10 PA f
(Section 1)1 395 1 2158 5054 t
10 S f
(_ _____________________)1 1084 1 1826 5074 t
10 PA f
(. . .)2 125 1 2293 5144 t
(Segment 1)1 459 1 3385 5124 t
10 S f
( ______________________)1 1059( _)1 200(_ _____________________)1 1084 3 1826 5214 t
10 PA f
(Section)2155 5334 w
10 PI f
(n)2500 5334 w
10 S f
(_ _____________________)1 1084 1 1826 5354 t
10 PA f
(. . .)2 125 1 2293 5424 t
(Segment 2)1 459 1 3385 5404 t
10 S f
( ______________________)1 1059( _)1 200(_ _____________________)1 1084 3 1826 5494 t
10 PA f
( . .)2 100( .)1 1159(. . .)2 125 3 2293 5564 t
10 S f
( ______________________)1 1059( _)1 200(_ _____________________)1 1084 3 1826 5634 t
10 PA f
( header table)2 570( Section)1 689(Section header table)2 890 3 1910 5754 t
10 PI f
(optional)3451 5874 w
10 S f
( \347)1 -2343( ______________________)1 1059( _)1 200(_ _____________________)1 1084 4 1826 5894 t
(\347)1826 5834 w
(\347)1826 5734 w
(\347)1826 5634 w
(\347)1826 5534 w
(\347)1826 5434 w
(\347)1826 5334 w
(\347)1826 5234 w
(\347)1826 5134 w
(\347)1826 5034 w
(\347)1826 4934 w
(\347)1826 4834 w
(\347)1826 4734 w
(\347)1826 4634 w
(\347)2910 5894 w
(\347)2910 5834 w
(\347)2910 5734 w
(\347)2910 5634 w
(\347)2910 5534 w
(\347)2910 5434 w
(\347)2910 5334 w
(\347)2910 5234 w
(\347)2910 5134 w
(\347)2910 5034 w
(\347)2910 4934 w
(\347)2910 4834 w
(\347)2910 4734 w
(\347)2910 4634 w
(\347)3060 5894 w
(\347)3060 5834 w
(\347)3060 5734 w
(\347)3060 5634 w
(\347)3060 5534 w
(\347)3060 5434 w
(\347)3060 5334 w
(\347)3060 5234 w
(\347)3060 5134 w
(\347)3060 5034 w
(\347)3060 4934 w
(\347)3060 4834 w
(\347)3060 4734 w
(\347)3060 4634 w
(\347)4169 5894 w
(\347)4169 5834 w
(\347)4169 5734 w
(\347)4169 5634 w
(\347)4169 5534 w
(\347)4169 5434 w
(\347)4169 5334 w
(\347)4169 5234 w
(\347)4169 5134 w
(\347)4169 5034 w
(\347)4169 4934 w
(\347)4169 4834 w
(\347)4169 4734 w
(\347)4169 4634 w
8 PA f
5338 6086 658 6086 Dl
10 PA f
(An)658 6386 w
10 PI f
(ELF header)1 459 1 819 6386 t
10 PA f
(resides at the beginning and holds a ``road map'' describing the \256le's organization.)12 3656 1 1303 6386 t
10 PI f
(Sec-)5009 6386 w
(tions)658 6506 w
10 PA f
(hold the bulk of object \256le information for the linking view: instructions, data, symbol table, reloca-)15 4383 1 883 6506 t
( 2 discusses)2 510( Part)1 233( of special sections appear later in Part 1.)8 1794( Descriptions)1 607(tion information, and so on.)4 1232 5 658 6626 t
10 PI f
(seg-)5059 6626 w
(ments)658 6746 w
10 PA f
(and the program execution view of the \256le.)7 1905 1 928 6746 t
9 PB f
( Formats Speci\256cation, Version 1.1)4 1413( Portable)1 851(Tool Interface Standards \(TIS\))3 1249 3 658 7324 t
9 R f
(1-1)5218 7324 w
cleartomark
showpage
restore
%%EndPage: 1 7
%%Page: 2 8
save
mark
8 pagesetup
9 HB f
(ELF: Executable and Linkable Format)4 1605 1 540 540 t
5400 540 2217 540 Dl
10 PA f
(A)540 1020 w
10 PI f
(program header table)2 845 1 643 1020 t
10 PA f
( used to build a pro-)5 896( Files)1 254(, if present, tells the system how to create a process image.)11 2569 3 1496 1020 t
( A)1 128(cess image \(execute a program\) must have a program header table; relocatable \256les do not need one.)16 4428 2 540 1140 t
10 PI f
(section header table)2 781 1 540 1260 t
10 PA f
( section has an entry in the)6 1178( Every)1 311(contains information describing the \256le's sections.)5 2207 3 1346 1260 t
( used during link-)3 795( Files)1 254(table; each entry gives information such as the section name, the section size, etc.)13 3564 3 540 1380 t
(ing must have a section header table; other object \256les may or may not have one.)15 3556 1 540 1500 t
 /oldm /m load def /m {} def
 gsave newpath 540 -1660 moveto
 810 -1660 lineto
 810 -1960 lineto
 540 -1960 lineto
 closepath 0.999 setgray fill grestore
 /m /oldm load def
7 HB f
810 1660 540 1660 Dl
810 1960 810 1660 Dl
540 1960 810 1960 Dl
540 1660 540 1960 Dl
681 2080 681 1960 Dl
(NOTE)582 1828 w
9 H f
(Although the \256gure shows the program header table immediately after the ELF header, and the section)15 4085 1 900 1720 t
( sections and segments have no)5 1290( Moreover,)1 455(header table following the sections, actual \256les may differ.)8 2300 3 900 1820 t
( the ELF header has a \256xed position in the \256le.)10 1850( Only)1 235(speci\256ed order.)1 615 3 900 1920 t
14 HB f
(Data Representation)1 1359 1 540 2480 t
10 PA f
(As described here, the object \256le)5 1427 1 540 2720 t
10 PI f
(format)1992 2720 w
10 PA f
(supports various processors with 8-bit bytes and 32-bit architec-)8 2827 1 2283 2720 t
( \256les there-)2 490( Object)1 332( it is intended to be extensible to larger \(or smaller\) architectures.)11 2869(tures. Nevertheless,)1 898 4 540 2840 t
(fore represent some control data with a machine-independent format, making it possible to identify)13 4400 1 540 2960 t
( data in an object \256le use the encod-)8 1573( Remaining)1 533(object \256les and interpret their contents in a common way.)9 2539 3 540 3080 t
(ing of the target processor, regardless of the machine on which the \256le was created.)14 3675 1 540 3200 t
8 HB f
5220 3360 540 3360 Dl
9 HB f
( Data Types)2 505( 32-Bit)1 300(Figure 1-2:)1 460 3 540 3460 t
10 PA f
( Purpose)1 939( Alignment)1 627(Name Size)1 822 3 1585 3652 t
10 S f
(_ ____________________________________________________________)1 3035 1 1362 3672 t
10 CW f
(E l f 3 2 _ A d d r)9 555 1 1360 3792 t
10 PA f
( program address)2 783( Unsigned)1 794(4 4)1 528 3 2292 3792 t
10 CW f
(E l f 3 2 _ H a l f)9 555 1 1360 3912 t
10 PA f
( medium integer)2 736( Unsigned)1 794(2 2)1 528 3 2292 3912 t
10 CW f
(E l f 3 2 _ O f f)8 500 1 1360 4032 t
10 PA f
( \256le offset)2 432( Unsigned)1 794(4 4)1 528 3 2292 4032 t
10 CW f
(E l f 3 2 _ S w o r d)10 610 1 1360 4152 t
10 PA f
( large integer)2 585( Signed)1 669(4 4)1 528 3 2292 4152 t
10 CW f
(E l f 3 2 _ W o r d)9 555 1 1360 4272 t
10 PA f
( large integer)2 585( Unsigned)1 794(4 4)1 528 3 2292 4272 t
10 CW f
( h a r)3 165( c)1 110(u n s i g n e d)7 445 3 1360 4392 t
10 PA f
( small integer)2 600( Unsigned)1 794(1 1)1 528 3 2292 4392 t
10 S f
( \347)1 -2245(_ ____________________________________________________________)1 3035 2 1362 4448 t
(\347)2152 4372 w
(\347)2152 4272 w
(\347)2152 4172 w
(\347)2152 4072 w
(\347)2152 3972 w
(\347)2152 3872 w
(\347)2152 3772 w
(\347)2482 4448 w
(\347)2482 4372 w
(\347)2482 4272 w
(\347)2482 4172 w
(\347)2482 4072 w
(\347)2482 3972 w
(\347)2482 3872 w
(\347)2482 3772 w
(\347)3109 4448 w
(\347)3109 4372 w
(\347)3109 4272 w
(\347)3109 4172 w
(\347)3109 4072 w
(\347)3109 3972 w
(\347)3109 3872 w
(\347)3109 3772 w
8 PA f
5220 4640 540 4640 Dl
10 PA f
(All data structures that the object \256le format de\256nes follow the ``natural'' size and alignment guidelines)15 4575 1 540 4880 t
( necessary, data structures contain explicit padding to ensure 4-byte alignment for)11 3626( If)1 117(for the relevant class.)3 936 3 540 5000 t
( also have suitable alignment from the)6 1688( Data)1 260(4-byte objects, to force structure sizes to a multiple of 4, etc.)11 2621 3 540 5120 t
( for example, a structure containing an)6 1706( Thus,)1 296(beginning of the \256le.)3 912 3 540 5240 t
10 CW f
(E l f 3 2 _ A d d r)9 555 1 3477 5240 t
10 PA f
(member will be aligned)3 1046 1 4062 5240 t
(on a 4-byte boundary within the \256le.)6 1615 1 540 5360 t
(For portability reasons, ELF uses no bit-\256elds.)6 2029 1 540 5540 t
9 R f
(1-2)540 7324 w
9 PB f
( Interface Standards \(TIS\))3 1059( Tool)1 535(Portable Formats Speci\256cation, Version 1.1)4 1758 3 1868 7324 t
cleartomark
showpage
restore
%%EndPage: 2 8
%%Page: 3 9
save
mark
9 pagesetup
16 HB f
5458 516 658 516 Dl
(ELF Header)1 893 1 658 682 t
10 PA f
( the)1 164( If)1 117(Some object \256le control structures can grow, because the ELF header contains their actual sizes.)14 4205 3 658 1042 t
(object \256le format changes, a program may encounter control structures that are larger or smaller than)15 4479 1 658 1162 t
( treatment of ``missing'' informa-)4 1461( The)1 217( might therefore ignore ``extra'' information.)5 1966(expected. Programs)1 900 4 658 1282 t
(tion depends on context and will be speci\256ed when and if extensions are de\256ned.)13 3592 1 658 1402 t
8 HB f
5338 1562 658 1562 Dl
9 HB f
( Header)1 330( ELF)1 220(Figure 1-3:)1 460 3 658 1662 t
 /oldm /m load def /m {} def
 gsave 766 -1958 moveto
 766 -3938 946 -3938 180  arcto 4 {pop} repeat
 5266 -3938 5266 -3758 180  arcto 4 {pop} repeat
 5266 -1778 5086 -1778 180  arcto 4 {pop} repeat
 766 -1778 766 -1958 180  arcto 4 {pop} repeat
 0.999 setgray fill grestore 
 /m /oldm load def
8 CW f
766 3758 766 1958 Dl
766 3758 180 0 0 180 Da
5086 3938 946 3938 Dl
5086 3938 0 -180 180 0 Da
5266 1958 5266 3758 Dl
5266 1958 -180 0 0 -180 Da
946 1778 5086 1778 Dl
946 1778 0 180 -180 0 Da
( 6)1 44( 1)1 376( I _ N I D E N T)8 352( E)1 88(# d e f i n e)6 312 5 908 2058 t
( {)1 88( t r u c t)5 220( s)1 88(t y p e d e f)6 312 4 908 2258 t
( _ i d e n t [ E I _ N I D E N T ] ;)18 792( e)1 192( h a r)3 132( c)1 88(u n s i g n e d)7 356 5 1268 2358 t
( _ t y p e ;)6 264( e)1 324(E l f 3 2 _ H a l f)9 444 3 1268 2458 t
( _ m a c h i n e ;)9 396( e)1 324(E l f 3 2 _ H a l f)9 444 3 1268 2558 t
( _ v e r s i o n ;)9 396( e)1 324(E l f 3 2 _ W o r d)9 444 3 1268 2658 t
( _ e n t r y ;)7 308( e)1 324(E l f 3 2 _ A d d r)9 444 3 1268 2758 t
( _ p h o f f ;)7 308( e)1 368(E l f 3 2 _ O f f)8 400 3 1268 2858 t
( _ s h o f f ;)7 308( e)1 368(E l f 3 2 _ O f f)8 400 3 1268 2958 t
( _ f l a g s ;)7 308( e)1 324(E l f 3 2 _ W o r d)9 444 3 1268 3058 t
( _ e h s i z e ;)8 352( e)1 324(E l f 3 2 _ H a l f)9 444 3 1268 3158 t
( _ p h e n t s i z e ;)11 484( e)1 324(E l f 3 2 _ H a l f)9 444 3 1268 3258 t
( _ p h n u m ;)7 308( e)1 324(E l f 3 2 _ H a l f)9 444 3 1268 3358 t
( _ s h e n t s i z e ;)11 484( e)1 324(E l f 3 2 _ H a l f)9 444 3 1268 3458 t
( _ s h n u m ;)7 308( e)1 324(E l f 3 2 _ H a l f)9 444 3 1268 3558 t
( _ s h s t r n d x ;)10 440( e)1 324(E l f 3 2 _ H a l f)9 444 3 1268 3658 t
( l f 3 2 _ E h d r ;)10 440(} E)1 136 2 908 3758 t
5338 4066 658 4066 Dl
10 CW f
(e_ident)658 4306 w
10 PA f
(The initial bytes mark the \256le as an object \256le and provide machine-independent data)13 3772 1 1486 4306 t
( descriptions appear)2 899( Complete)1 482(with which to decode and interpret the \256le's contents.)8 2381 3 1486 4426 t
(below, in ``ELF Identi\256cation.'')3 1365 1 1486 4546 t
10 CW f
(e_type)658 4726 w
10 PA f
(This member identi\256es the object \256le type.)6 1873 1 1486 4726 t
( Meaning)1 792(Name Value)1 864 2 2553 4906 t
10 S f
(_ _______________________________________)1 1988 1 2418 4926 t
10 CW f
(ET_NONE 0)1 1050 1 2418 5046 t
10 PA f
(No \256le type)2 523 1 3618 5046 t
10 CW f
(ET_REL 1)1 1050 1 2418 5166 t
10 PA f
(Relocatable \256le)1 671 1 3618 5166 t
10 CW f
(ET_EXEC 2)1 1050 1 2418 5286 t
10 PA f
(Executable \256le)1 643 1 3618 5286 t
10 CW f
(ET_DYN 3)1 1050 1 2418 5406 t
10 PA f
(Shared object \256le)2 756 1 3618 5406 t
10 CW f
(ET_CORE 4)1 1050 1 2418 5526 t
10 PA f
(Core \256le)1 377 1 3618 5526 t
10 CW f
(ET_LOPROC 0xff00)1 1050 1 2418 5646 t
10 PA f
(Processor-speci\256c)3618 5646 w
10 CW f
(ET_HIPROC 0xffff)1 1050 1 2418 5766 t
10 PA f
(Processor-speci\256c)3618 5766 w
10 S f
( \347)1 -1373(_ _______________________________________)1 1988 2 2418 5822 t
(\347)3033 5726 w
(\347)3033 5626 w
(\347)3033 5526 w
(\347)3033 5426 w
(\347)3033 5326 w
(\347)3033 5226 w
(\347)3033 5126 w
(\347)3033 5026 w
(\347)3543 5822 w
(\347)3543 5726 w
(\347)3543 5626 w
(\347)3543 5526 w
(\347)3543 5426 w
(\347)3543 5326 w
(\347)3543 5226 w
(\347)3543 5126 w
(\347)3543 5026 w
10 PA f
(Although the core \256le contents are unspeci\256ed, type)7 2308 1 1486 6002 t
10 CW f
(ET_CORE)3819 6002 w
10 PA f
(is reserved to mark the)4 1015 1 4272 6002 t
( from)1 241(\256le. Values)1 514 2 1486 6122 t
10 CW f
(ET_LOPROC)2266 6122 w
10 PA f
(through)2839 6122 w
10 CW f
(ET_HIPROC)3224 6122 w
10 PA f
(\(inclusive\) are reserved for)3 1185 1 3797 6122 t
( values are reserved and will be assigned to new)9 2136( Other)1 308(processor-speci\256c semantics.)1 1271 3 1486 6242 t
(object \256le types as necessary.)4 1280 1 1486 6362 t
9 PB f
( Formats Speci\256cation, Version 1.1)4 1413( Portable)1 851(Tool Interface Standards \(TIS\))3 1249 3 658 7324 t
9 R f
(1-3)5218 7324 w
cleartomark
showpage
restore
%%EndPage: 3 9
%%Page: 4 10
save
mark
10 pagesetup
9 HB f
(ELF: Executable and Linkable Format)4 1605 1 540 540 t
5400 540 2217 540 Dl
10 CW f
(e_machine)540 1020 w
10 PA f
(This member's value speci\256es the required architecture for an individual \256le.)10 3403 1 1368 1020 t
( Meaning)1 716(Name Value)1 784 2 2510 1200 t
10 S f
(_ ___________________________________)1 1778 1 2405 1220 t
10 CW f
(EM_NONE 0)1 789 1 2405 1340 t
10 PA f
(No machine)1 538 1 3444 1340 t
10 CW f
(EM_M32 1)1 789 1 2405 1460 t
10 PA f
(AT&T WE 32100)2 739 1 3444 1460 t
10 CW f
(EM_SPARC 2)1 789 1 2405 1580 t
10 PA f
(SPARC)3444 1580 w
10 CW f
(EM_386 3)1 789 1 2405 1700 t
10 PA f
(Intel 80386)1 477 1 3444 1700 t
10 CW f
(EM_68K 4)1 789 1 2405 1820 t
10 PA f
(Motorola 68000)1 687 1 3444 1820 t
10 CW f
(EM_88K 5)1 789 1 2405 1940 t
10 PA f
(Motorola 88000)1 687 1 3444 1940 t
10 CW f
(EM_860 7)1 789 1 2405 2060 t
10 PA f
(Intel 80860)1 477 1 3444 2060 t
10 CW f
(EM_MIPS 8)1 789 1 2405 2180 t
10 PA f
(MIPS RS3000)1 587 1 3444 2180 t
10 S f
( \347)1 -1223(_ ___________________________________)1 1778 2 2405 2236 t
(\347)2960 2220 w
(\347)2960 2120 w
(\347)2960 2020 w
(\347)2960 1920 w
(\347)2960 1820 w
(\347)2960 1720 w
(\347)2960 1620 w
(\347)2960 1520 w
(\347)2960 1420 w
(\347)2960 1320 w
(\347)3369 2236 w
(\347)3369 2220 w
(\347)3369 2120 w
(\347)3369 2020 w
(\347)3369 1920 w
(\347)3369 1820 w
(\347)3369 1720 w
(\347)3369 1620 w
(\347)3369 1520 w
(\347)3369 1420 w
(\347)3369 1320 w
10 PA f
(Other values are reserved and will be assigned to new machines as necessary.)12 3431 1 1368 2416 t
( example,)1 425( For)1 201(Processor-speci\256c ELF names use the machine name to distinguish them.)9 3221 3 1368 2536 t
(the \257ags mentioned below use the pre\256x)6 1796 1 1368 2656 t
10 CW f
(EF_)3189 2656 w
10 PA f
(; a \257ag named)3 622 1 3377 2656 t
10 CW f
(WIDGET)4024 2656 w
10 PA f
(for the)1 292 1 4417 2656 t
10 CW f
(EM_XYZ)4734 2656 w
10 PA f
(machine would be called)3 1102 1 1368 2776 t
10 CW f
(EF_XYZ_WIDGET)2495 2776 w
10 PA f
(.)3283 2776 w
10 CW f
(e_version)540 2956 w
10 PA f
(This member identi\256es the object \256le version.)6 2004 1 1368 2956 t
( Meaning)1 698(Name Value)1 844 2 2528 3136 t
10 S f
(_ _____________________________________)1 1862 1 2363 3156 t
10 CW f
(EV_NONE 0)1 909 1 2363 3276 t
10 PA f
(Invalid version)1 670 1 3522 3276 t
10 CW f
(EV_CURRENT 1)1 909 1 2363 3396 t
10 PA f
(Current version)1 703 1 3522 3396 t
10 S f
( \347)1 -1187(_ _____________________________________)1 1862 2 2363 3452 t
(\347)3038 3356 w
(\347)3038 3256 w
(\347)3447 3452 w
(\347)3447 3356 w
(\347)3447 3256 w
10 PA f
(The value)1 435 1 1368 3632 t
10 CW f
(1)1828 3632 w
10 PA f
(signi\256es the original \256le format; extensions will create new versions with)10 3222 1 1921 3632 t
( value of)2 381( The)1 217(higher numbers.)1 730 3 1368 3752 t
10 CW f
(EV_CURRENT)2721 3752 w
10 PA f
(, though given as)3 759 1 3329 3752 t
10 CW f
(1)4113 3752 w
10 PA f
(above, will change as)3 940 1 4206 3752 t
(necessary to re\257ect the current version number.)6 2104 1 1368 3872 t
10 CW f
(e_entry)540 4052 w
10 PA f
(This member gives the virtual address to which the system \256rst transfers control, thus)13 3795 1 1368 4052 t
( the \256le has no associated entry point, this member holds zero.)11 2756( If)1 117(starting the process.)2 886 3 1368 4172 t
10 CW f
(e_phoff)540 4352 w
10 PA f
( the \256le has no)4 640( If)1 117(This member holds the program header table's \256le offset in bytes.)10 2898 3 1368 4352 t
(program header table, this member holds zero.)6 2076 1 1368 4472 t
10 CW f
(e_shoff)540 4652 w
10 PA f
( the \256le has no sec-)5 832( If)1 117(This member holds the section header table's \256le offset in bytes.)10 2818 3 1368 4652 t
(tion header table, this member holds zero.)6 1862 1 1368 4772 t
10 CW f
(e_flags)540 4952 w
10 PA f
( names take)2 523( Flag)1 241(This member holds processor-speci\256c \257ags associated with the \256le.)8 2957 3 1368 4952 t
(the form)1 380 1 1368 5072 t
10 CW f
(EF_)1773 5072 w
10 PI f
(machine)1953 5072 w
10 CW f
(_)2289 5072 w
10 PI f
(\257ag)2349 5072 w
10 PA f
( ``Machine Information'' for \257ag de\256nitions.)5 1946(. See)1 224 2 2497 5072 t
10 CW f
(e_ehsize)540 5252 w
10 PA f
(This member holds the ELF header's size in bytes.)8 2209 1 1368 5252 t
10 CW f
(e_phentsize)540 5432 w
10 PA f
(This member holds the size in bytes of one entry in the \256le's program header table; all)16 3791 1 1368 5432 t
(entries are the same size.)4 1097 1 1368 5552 t
10 CW f
(e_phnum)540 5732 w
10 PA f
( the pro-)2 377( Thus)1 271(This member holds the number of entries in the program header table.)11 3111 3 1368 5732 t
(duct of)1 311 1 1368 5852 t
10 CW f
(e_phentsize)1704 5852 w
10 PA f
(and)2397 5852 w
10 CW f
(e_phnum)2591 5852 w
10 PA f
( a \256le has no pro-)5 764( If)1 117(gives the table's size in bytes.)5 1295 3 3044 5852 t
(gram header table,)2 829 1 1368 5972 t
10 CW f
(e_phnum)2222 5972 w
10 PA f
(holds the value zero.)3 920 1 2675 5972 t
10 CW f
(e_shentsize)540 6152 w
10 PA f
( section header is one entry in)6 1318( A)1 128(This member holds a section header's size in bytes.)8 2251 3 1368 6152 t
(the section header table; all entries are the same size.)9 2323 1 1368 6272 t
10 CW f
(e_shnum)540 6452 w
10 PA f
( the product)2 542( Thus)1 271(This member holds the number of entries in the section header table.)11 3031 3 1368 6452 t
(of)1368 6572 w
10 CW f
(e_shentsize)1481 6572 w
10 PA f
(and)2174 6572 w
10 CW f
(e_shnum)2368 6572 w
10 PA f
( a \256le)2 238( If)1 117(gives the section header table's size in bytes.)7 1959 3 2821 6572 t
(has no section header table,)4 1217 1 1368 6692 t
10 CW f
(e_shnum)2610 6692 w
10 PA f
(holds the value zero.)3 920 1 3063 6692 t
9 R f
(1-4)540 7324 w
9 PB f
( Interface Standards \(TIS\))3 1059( Tool)1 535(Portable Formats Speci\256cation, Version 1.1)4 1758 3 1868 7324 t
cleartomark
showpage
restore
%%EndPage: 4 10
%%Page: 5 11
save
mark
11 pagesetup
9 HB f
3841 540 658 540 Dl
(ELF: Executable and Linkable Format)4 1605 1 3913 540 t
10 CW f
(e_shstrndx)658 1020 w
10 PA f
(This member holds the section header table index of the entry associated with the sec-)14 3793 1 1486 1020 t
( the \256le has no section name string table, this member holds)11 2640( If)1 117(tion name string table.)3 992 3 1486 1140 t
(the value)1 407 1 1486 1260 t
10 CW f
(SHN_UNDEF)1918 1260 w
10 PA f
( ``Sections'' and ``String Table'' below for more informa-)8 2482(. See)1 224 2 2466 1260 t
(tion.)1486 1380 w
14 HB f
(ELF Identi\256cation)1 1171 1 658 1820 t
10 PA f
(As mentioned above, ELF provides an object \256le framework to support multiple processors, multiple data)14 4680 1 658 2060 t
( support this object \256le family, the initial bytes of the \256le)11 2488( To)1 166(encodings, and multiple classes of machines.)5 1973 3 658 2180 t
(specify how to interpret the \256le, independent of the processor on which the inquiry is made and indepen-)17 4661 1 658 2300 t
(dent of the \256le's remaining contents.)5 1612 1 658 2420 t
(The initial bytes of an ELF header \(and an object \256le\) correspond to the)13 3131 1 658 2600 t
10 CW f
(e_ident)3814 2600 w
10 PA f
(member.)4267 2600 w
8 HB f
5338 2760 658 2760 Dl
9 HB f
(Figure 1-4:)1 460 1 658 2860 t
9 CW f
(e_ident[ ])1 516 1 1168 2860 t
9 HB f
(Identi\256cation Indexes)1 920 1 1709 2860 t
10 PA f
( Purpose)1 823(Name Value)1 844 2 2093 3052 t
10 S f
(_ __________________________________________)1 2140 1 1928 3072 t
10 CW f
(EI_MAG0 0)1 939 1 1928 3192 t
10 PA f
(File identi\256cation)1 775 1 3087 3192 t
10 CW f
(EI_MAG1 1)1 939 1 1928 3312 t
10 PA f
(File identi\256cation)1 775 1 3087 3312 t
10 CW f
(EI_MAG2 2)1 939 1 1928 3432 t
10 PA f
(File identi\256cation)1 775 1 3087 3432 t
10 CW f
(EI_MAG3 3)1 939 1 1928 3552 t
10 PA f
(File identi\256cation)1 775 1 3087 3552 t
10 CW f
(EI_CLASS 4)1 939 1 1928 3672 t
10 PA f
(File class)1 394 1 3087 3672 t
10 CW f
(EI_DATA 5)1 939 1 1928 3792 t
10 PA f
(Data encoding)1 644 1 3087 3792 t
10 CW f
(EI_VERSION 6)1 939 1 1928 3912 t
10 PA f
(File version)1 515 1 3087 3912 t
10 CW f
(EI_PAD 7)1 939 1 1928 4032 t
10 PA f
(Start of padding bytes)3 981 1 3087 4032 t
10 CW f
(EI_NIDENT 16)1 939 1 1928 4152 t
10 PA f
(Size of)1 293 1 3087 4152 t
10 CW f
(e_ident[])3405 4152 w
10 S f
( \347)1 -1465(_ __________________________________________)1 2140 2 1928 4208 t
(\347)2603 4172 w
(\347)2603 4072 w
(\347)2603 3972 w
(\347)2603 3872 w
(\347)2603 3772 w
(\347)2603 3672 w
(\347)2603 3572 w
(\347)2603 3472 w
(\347)2603 3372 w
(\347)2603 3272 w
(\347)2603 3172 w
(\347)3012 4208 w
(\347)3012 4172 w
(\347)3012 4072 w
(\347)3012 3972 w
(\347)3012 3872 w
(\347)3012 3772 w
(\347)3012 3672 w
(\347)3012 3572 w
(\347)3012 3472 w
(\347)3012 3372 w
(\347)3012 3272 w
(\347)3012 3172 w
8 PA f
5338 4400 658 4400 Dl
10 PA f
(These indexes access bytes that hold the following values.)8 2552 1 658 4640 t
10 CW f
(EI_MAG0)658 4820 w
10 PA f
(to)1103 4820 w
10 CW f
(EI_MAG3)1216 4820 w
10 PA f
(A \256le's \256rst 4 bytes hold a ``magic number,'' identifying the \256le as an ELF object \256le.)16 3718 1 1408 4940 t
( Position)1 810(Name Value)1 754 2 2478 5120 t
10 S f
(_ ______________________________________)1 1939 1 2403 5140 t
10 CW f
( e_ident[EI_MAG0])1 1120(ELFMAG0 0x7f)1 819 2 2403 5260 t
( e_ident[EI_MAG1])1 1150(ELFMAG1 'E')1 789 2 2403 5380 t
( e_ident[EI_MAG2])1 1150(ELFMAG2 'L')1 789 2 2403 5500 t
( e_ident[EI_MAG3])1 1150(ELFMAG3 'F')1 789 2 2403 5620 t
10 S f
( \347)1 -1444(_ ______________________________________)1 1939 2 2403 5676 t
(\347)2898 5640 w
(\347)2898 5540 w
(\347)2898 5440 w
(\347)2898 5340 w
(\347)2898 5240 w
(\347)3307 5676 w
(\347)3307 5640 w
(\347)3307 5540 w
(\347)3307 5440 w
(\347)3307 5340 w
(\347)3307 5240 w
10 CW f
(EI_CLASS)658 6036 w
10 PA f
(The next byte,)2 625 1 1408 6036 t
10 CW f
(e_ident[EI_CLASS])2058 6036 w
10 PA f
(, identi\256es the \256le's class, or capacity.)6 1649 1 3086 6036 t
9 PB f
( Formats Speci\256cation, Version 1.1)4 1413( Portable)1 851(Tool Interface Standards \(TIS\))3 1249 3 658 7324 t
9 R f
(1-5)5218 7324 w
cleartomark
showpage
restore
%%EndPage: 5 11
%%Page: 6 12
save
mark
12 pagesetup
9 HB f
(ELF: Executable and Linkable Format)4 1605 1 540 540 t
5400 540 2217 540 Dl
10 PA f
( Meaning)1 634(Name Value)1 904 2 2553 1020 t
10 S f
(_ _____________________________________)1 1854 1 2328 1040 t
10 CW f
(ELFCLASSNONE 0)1 1029 1 2328 1160 t
10 PA f
(Invalid class)1 549 1 3607 1160 t
10 CW f
(ELFCLASS32 1)1 1029 1 2328 1280 t
10 PA f
(32-bit objects)1 575 1 3607 1280 t
10 CW f
(ELFCLASS64 2)1 1029 1 2328 1400 t
10 PA f
(64-bit objects)1 575 1 3607 1400 t
10 S f
( \347)1 -1059(_ _____________________________________)1 1854 2 2328 1420 t
(\347)3123 1340 w
(\347)3123 1240 w
(\347)3123 1140 w
(\347)3532 1420 w
(\347)3532 1340 w
(\347)3532 1240 w
(\347)3532 1140 w
10 PA f
(The \256le format is designed to be portable among machines of various sizes, without)13 3695 1 1290 1600 t
( Class)1 284(imposing the sizes of the largest machine on the smallest.)9 2530 2 1290 1720 t
10 CW f
(ELFCLASS32)4129 1720 w
10 PA f
(supports)4762 1720 w
(machines with \256les and virtual address spaces up to 4 gigabytes; it uses the basic types)15 3831 1 1290 1840 t
(de\256ned above.)1 651 1 1290 1960 t
(Class)1290 2140 w
10 CW f
(ELFCLASS64)1549 2140 w
10 PA f
( appearance here shows how)4 1278( Its)1 159(is reserved for 64-bit architectures.)4 1526 3 2182 2140 t
( classes)1 322( Other)1 308(the object \256le may change, but the 64-bit format is otherwise unspeci\256ed.)11 3222 3 1290 2260 t
(will be de\256ned as necessary, with different basic types and sizes for object \256le data.)14 3673 1 1290 2380 t
10 CW f
(EI_DATA)540 2560 w
10 PA f
(Byte)1290 2560 w
10 CW f
(e_ident[EI_DATA])1513 2560 w
10 PA f
(speci\256es the data encoding of the processor-speci\256c data in)8 2611 1 2506 2560 t
( following encodings are currently de\256ned.)5 1911( The)1 217(the object \256le.)2 610 3 1290 2680 t
( Meaning)1 832(Name Value)1 874 2 2355 2860 t
10 S f
(_ ___________________________________________)1 2189 1 2160 2880 t
10 CW f
(ELFDATANONE 0)1 969 1 2160 3000 t
10 PA f
(Invalid data encoding)2 970 1 3379 3000 t
10 CW f
(ELFDATA2LSB 1)1 969 1 2160 3120 t
10 PA f
(See below)1 444 1 3379 3120 t
10 CW f
(ELFDATA2MSB 2)1 969 1 2160 3240 t
10 PA f
(See below)1 444 1 3379 3240 t
10 S f
( \347)1 -1454(_ ___________________________________________)1 2189 2 2160 3260 t
(\347)2895 3180 w
(\347)2895 3080 w
(\347)2895 2980 w
(\347)3304 3260 w
(\347)3304 3180 w
(\347)3304 3080 w
(\347)3304 2980 w
10 PA f
( values are reserved and)4 1075( Other)1 308(More information on these encodings appears below.)6 2354 3 1290 3440 t
(will be assigned to new encodings as necessary.)7 2107 1 1290 3560 t
10 CW f
(EI_VERSION)540 3740 w
10 PA f
(Byte)1290 3740 w
10 CW f
(e_ident[EI_VERSION])1513 3740 w
10 PA f
( this)1 187( Currently,)1 510(speci\256es the ELF header version number.)5 1823 3 2686 3740 t
(value must be)2 619 1 1290 3860 t
10 CW f
(EV_CURRENT)1934 3860 w
10 PA f
(, as explained above for)4 1044 1 2542 3860 t
10 CW f
(e_version)3611 3860 w
10 PA f
(.)4159 3860 w
10 CW f
(EI_PAD)540 4040 w
10 PA f
(This value marks the beginning of the unused bytes in)9 2397 1 1290 4040 t
10 CW f
(e_ident)3712 4040 w
10 PA f
( bytes are)2 422(. These)1 332 2 4140 4040 t
( value)1 268( The)1 217(reserved and set to zero; programs that read object \256les should ignore them.)12 3366 3 1290 4160 t
(of)1290 4280 w
10 CW f
(EI_PAD)1403 4280 w
10 PA f
(will change in the future if currently unused bytes are given meanings.)11 3131 1 1796 4280 t
( described above, class)3 999( As)1 170(A \256le's data encoding speci\256es how to interpret the basic objects in a \256le.)13 3220 3 540 4520 t
10 CW f
(ELFCLASS32)540 4640 w
10 PA f
( the de\256ned encodings, objects are)5 1515( Under)1 335(\256les use objects that occupy 1, 2, and 4 bytes.)9 1976 3 1173 4640 t
( numbers appear in the upper left corners.)7 1863( Byte)1 248(represented as shown below.)3 1284 3 540 4760 t
(Encoding)540 4940 w
10 CW f
(ELFDATA2LSB)987 4940 w
10 PA f
(speci\256es 2's complement values, with the least signi\256cant byte occupying the)10 3402 1 1680 4940 t
(lowest address.)1 684 1 540 5060 t
8 HB f
5220 5220 540 5220 Dl
9 HB f
( Encoding)1 435( Data)1 245(Figure 1-5:)1 460 3 540 5320 t
9 CW f
(ELFDATA2LSB)1705 5320 w
10 PA f
2167 5512 2167 5728 Dl
2642 5512 2167 5512 Dl
2642 5728 2642 5512 Dl
2167 5728 2642 5728 Dl
10 CW f
(01)2344 5640 w
6 PA f
(0)2177 5568 w
10 CW f
(0x01)1747 5640 w
2167 5800 2167 6016 Dl
2642 5800 2167 5800 Dl
2642 6016 2642 5800 Dl
2167 6016 2642 6016 Dl
(02)2344 5928 w
6 PA f
(0)2177 5856 w
10 PA f
2642 5800 2642 6016 Dl
3117 5800 2642 5800 Dl
3117 6016 3117 5800 Dl
2642 6016 3117 6016 Dl
10 CW f
(01)2820 5928 w
6 PA f
(1)2652 5856 w
10 CW f
(0x0102)1627 5928 w
2167 6088 2167 6304 Dl
2642 6088 2167 6088 Dl
2642 6304 2642 6088 Dl
2167 6304 2642 6304 Dl
(04)2344 6216 w
6 PA f
(0)2177 6144 w
10 PA f
2642 6088 2642 6304 Dl
3117 6088 2642 6088 Dl
3117 6304 3117 6088 Dl
2642 6304 3117 6304 Dl
10 CW f
(03)2820 6216 w
6 PA f
(1)2652 6144 w
10 PA f
3117 6088 3117 6304 Dl
3592 6088 3117 6088 Dl
3592 6304 3592 6088 Dl
3117 6304 3592 6304 Dl
10 CW f
(02)3295 6216 w
6 PA f
(2)3127 6144 w
10 PA f
3592 6088 3592 6304 Dl
4067 6088 3592 6088 Dl
4068 6304 4068 6088 Dl
3593 6304 4068 6304 Dl
10 CW f
(01)3770 6216 w
6 PA f
(3)3602 6144 w
10 CW f
(0x01020304)1387 6216 w
8 PA f
5220 6496 540 6496 Dl
9 R f
(1-6)540 7324 w
9 PB f
( Interface Standards \(TIS\))3 1059( Tool)1 535(Portable Formats Speci\256cation, Version 1.1)4 1758 3 1868 7324 t
cleartomark
showpage
restore
%%EndPage: 6 12
%%Page: 7 13
save
mark
13 pagesetup
9 HB f
3841 540 658 540 Dl
(ELF: Executable and Linkable Format)4 1605 1 3913 540 t
10 PA f
(Encoding)658 1020 w
10 CW f
(ELFDATA2MSB)1105 1020 w
10 PA f
(speci\256es 2's complement values, with the most signi\256cant byte occupying the)10 3418 1 1798 1020 t
(lowest address.)1 684 1 658 1140 t
8 HB f
5338 1300 658 1300 Dl
9 HB f
( Encoding)1 435( Data)1 245(Figure 1-6:)1 460 3 658 1400 t
9 CW f
(ELFDATA2MSB)1823 1400 w
10 PA f
2285 1592 2285 1808 Dl
2760 1592 2285 1592 Dl
2760 1808 2760 1592 Dl
2285 1808 2760 1808 Dl
10 CW f
(01)2462 1720 w
6 PA f
(0)2295 1648 w
10 CW f
(0x01)1865 1720 w
2285 1880 2285 2096 Dl
2760 1880 2285 1880 Dl
2760 2096 2760 1880 Dl
2285 2096 2760 2096 Dl
(01)2462 2008 w
6 PA f
(0)2295 1936 w
10 PA f
2760 1880 2760 2096 Dl
3235 1880 2760 1880 Dl
3235 2096 3235 1880 Dl
2760 2096 3235 2096 Dl
10 CW f
(02)2938 2008 w
6 PA f
(1)2770 1936 w
10 CW f
(0x0102)1745 2008 w
2285 2168 2285 2384 Dl
2760 2168 2285 2168 Dl
2760 2384 2760 2168 Dl
2285 2384 2760 2384 Dl
(01)2462 2296 w
6 PA f
(0)2295 2224 w
10 PA f
2760 2168 2760 2384 Dl
3235 2168 2760 2168 Dl
3235 2384 3235 2168 Dl
2760 2384 3235 2384 Dl
10 CW f
(02)2938 2296 w
6 PA f
(1)2770 2224 w
10 PA f
3235 2168 3235 2384 Dl
3710 2168 3235 2168 Dl
3710 2384 3710 2168 Dl
3235 2384 3710 2384 Dl
10 CW f
(03)3413 2296 w
6 PA f
(2)3245 2224 w
10 PA f
3710 2168 3710 2384 Dl
4185 2168 3710 2168 Dl
4186 2384 4186 2168 Dl
3711 2384 4186 2384 Dl
10 CW f
(04)3888 2296 w
6 PA f
(3)3720 2224 w
10 CW f
(0x01020304)1505 2296 w
8 PA f
5338 2576 658 2576 Dl
14 HB f
(Machine Information)1 1366 1 658 3016 t
10 PA f
(For \256le identi\256cation in)3 1039 1 658 3256 t
10 CW f
(e_ident)1722 3256 w
10 PA f
(, the 32-bit Intel Architecture requires the following values.)8 2610 1 2150 3256 t
8 HB f
5338 3416 658 3416 Dl
9 HB f
( Intel Architecture Identi\256cation,)3 1375( 32-bit)1 290(Figure 1-7:)1 460 3 658 3516 t
9 CW f
(e_ident)2837 3516 w
10 PA f
(Position Value)1 1300 1 2412 3708 t
10 S f
(_ ____________________________________)1 1830 1 2083 3728 t
10 CW f
(e_ident[EI_CLASS] ELFCLASS32)1 1770 1 2083 3848 t
(e_ident[EI_DATA] ELFDATA2LSB)1 1830 1 2083 3968 t
10 S f
( \347)1 -735(_ ____________________________________)1 1830 2 2083 4024 t
(\347)3178 3928 w
(\347)3178 3828 w
8 PA f
5338 4216 658 4216 Dl
10 PA f
(Processor identi\256cation resides in the ELF header's)6 2253 1 658 4516 t
10 CW f
(e_machine)2936 4516 w
10 PA f
(member and must have the value)5 1478 1 3509 4516 t
10 CW f
(EM_386)658 4636 w
10 PA f
(.)1026 4636 w
(The ELF header's)2 770 1 658 4816 t
10 CW f
(e_flags)1453 4816 w
10 PA f
( 32-bit Intel Architecture)3 1082( The)1 217(member holds bit \257ags associated with the \256le.)7 2072 3 1906 4816 t
(de\256nes no \257ags; so this member contains zero.)7 2053 1 658 4936 t
9 PB f
( Formats Speci\256cation, Version 1.1)4 1413( Portable)1 851(Tool Interface Standards \(TIS\))3 1249 3 658 7324 t
9 R f
(1-7)5218 7324 w
cleartomark
showpage
restore
%%EndPage: 7 13
%%Page: 8 14
save
mark
14 pagesetup
16 HB f
5340 516 540 516 Dl
(Sections)540 682 w
10 PA f
( section header table is an)5 1133( The)1 217(An object \256le's section header table lets one locate all the \256le's sections.)12 3134 3 540 1042 t
(array of)1 349 1 540 1162 t
10 CW f
(Elf32_Shdr)914 1162 w
10 PA f
( section header table index is a subscript into this)9 2165( A)1 128(structures as described below.)3 1332 3 1547 1162 t
( ELF header's)2 603(array. The)1 478 2 540 1282 t
10 CW f
(e_shoff)1646 1282 w
10 PA f
(member gives the byte offset from the beginning of the \256le to the sec-)13 3059 1 2099 1282 t
(tion header table;)2 770 1 540 1402 t
10 CW f
(e_shnum)1335 1402 w
10 PA f
(tells how many entries the section header table contains;)8 2489 1 1788 1402 t
10 CW f
(e_shentsize)4302 1402 w
10 PA f
(gives the size in bytes of each entry.)7 1583 1 540 1522 t
(Some section header table indexes are reserved; an object \256le will not have sections for these special)16 4399 1 540 1702 t
(indexes.)540 1822 w
8 HB f
5220 1982 540 1982 Dl
9 HB f
( Section Indexes)2 710( Special)1 365(Figure 1-8:)1 460 3 540 2082 t
10 PA f
(Name Value)1 984 1 2490 2274 t
10 S f
(_ _________________________)1 1290 1 2235 2294 t
10 CW f
(SHN_UNDEF 0)1 1290 1 2235 2414 t
(SHN_LORESERVE 0xff00)1 1290 1 2235 2534 t
(SHN_LOPROC 0xff00)1 1290 1 2235 2654 t
(SHN_HIPROC 0xff1f)1 1290 1 2235 2774 t
(SHN_ABS 0xfff1)1 1290 1 2235 2894 t
(SHN_COMMON 0xfff2)1 1290 1 2235 3014 t
(SHN_HIRESERVE 0xffff)1 1290 1 2235 3134 t
10 S f
( \347)1 -435(_ _________________________)1 1290 2 2235 3190 t
(\347)3090 3094 w
(\347)3090 2994 w
(\347)3090 2894 w
(\347)3090 2794 w
(\347)3090 2694 w
(\347)3090 2594 w
(\347)3090 2494 w
(\347)3090 2394 w
8 PA f
5220 3382 540 3382 Dl
10 CW f
(SHN_UNDEF)540 3622 w
10 PA f
(This value marks an unde\256ned, missing, irrelevant, or otherwise meaningless section)10 3760 1 1440 3622 t
( example, a symbol ``de\256ned'' relative to section number)8 2503(reference. For)1 633 2 1440 3742 t
10 CW f
(SHN_UNDEF)4601 3742 w
10 PA f
(is an unde\256ned symbol.)3 1059 1 1440 3862 t
 /oldm /m load def /m {} def
 gsave newpath 540 -4082 moveto
 810 -4082 lineto
 810 -4382 lineto
 540 -4382 lineto
 closepath 0.999 setgray fill grestore
 /m /oldm load def
7 HB f
810 4082 540 4082 Dl
810 4382 810 4082 Dl
540 4382 810 4382 Dl
540 4082 540 4382 Dl
681 4502 681 4382 Dl
(NOTE)582 4250 w
9 H f
(Although index 0 is reserved as the unde\256ned value, the section header table contains an entry for)16 3915 1 900 4142 t
( is, if the)3 335( That)1 230(index 0.)1 315 3 900 4242 t
9 CW f
(e_shnum)1805 4242 w
9 H f
(member of the ELF header says a \256le has 6 entries in the section)13 2595 1 2215 4242 t
( contents of the initial entry are speci\256ed later in)9 1900( The)1 205(header table, they have the indexes 0 through 5.)8 1930 3 900 4342 t
(this section.)1 475 1 900 4442 t
10 CW f
(SHN_LORESERVE)540 4702 w
10 PA f
(This value speci\256es the lower bound of the range of reserved indexes.)11 3078 1 1440 4702 t
10 CW f
(SHN_LOPROC)540 4882 w
10 PA f
(through)1165 4882 w
10 CW f
(SHN_HIPROC)1550 4882 w
10 PA f
(Values in this inclusive range are reserved for processor-speci\256c semantics.)9 3317 1 1440 5002 t
10 CW f
(SHN_ABS)540 5182 w
10 PA f
( example,)1 425( For)1 201(This value speci\256es absolute values for the corresponding reference.)8 3009 3 1440 5182 t
(symbols de\256ned relative to section number)5 1908 1 1440 5302 t
10 CW f
(SHN_ABS)3373 5302 w
10 PA f
(have absolute values and are)4 1276 1 3826 5302 t
(not affected by relocation.)3 1148 1 1440 5422 t
10 CW f
(SHN_COMMON)540 5602 w
10 PA f
(Symbols de\256ned relative to this section are common symbols, such as FORTRAN)11 3587 1 1440 5602 t
10 CW f
(COMMON)1440 5722 w
10 PA f
(or unallocated C external variables.)4 1565 1 1833 5722 t
10 CW f
(SHN_HIRESERVE)540 5902 w
10 PA f
( system)1 334( The)1 217(This value speci\256es the upper bound of the range of reserved indexes.)11 3091 3 1440 5902 t
(reserves indexes between)2 1125 1 1440 6022 t
10 CW f
(SHN_LORESERVE)2590 6022 w
10 PA f
(and)3403 6022 w
10 CW f
(SHN_HIRESERVE)3597 6022 w
10 PA f
(, inclusive; the)2 634 1 4385 6022 t
( is, the section header table)5 1189( That)1 252(values do not reference the section header table.)7 2122 3 1440 6142 t
(does)1440 6262 w
10 PI f
(not)1671 6262 w
10 PA f
(contain entries for the reserved indexes.)5 1763 1 1829 6262 t
(Sections contain all information in an object \256le, except the ELF header, the program header table, and the)17 4679 1 540 6502 t
( object \256les' sections satisfy several conditions.)6 2054( Moreover,)1 512(section header table.)2 904 3 540 6622 t
9 R f
(1-8)540 7324 w
9 PB f
( Interface Standards \(TIS\))3 1059( Tool)1 535(Portable Formats Speci\256cation, Version 1.1)4 1758 3 1868 7324 t
cleartomark
showpage
restore
%%EndPage: 8 14
%%Page: 9 15
save
mark
15 pagesetup
9 HB f
3841 540 658 540 Dl
(ELF: Executable and Linkable Format)4 1605 1 3913 540 t
10 S f
()816 1020 w
816 1020 m
50 build_bx
866 1020 m
10 PA f
( headers may)2 591( Section)1 370(Every section in an object \256le has exactly one section header describing it.)12 3247 3 932 1020 t
(exist that do not have a section.)6 1386 1 932 1140 t
10 S f
()816 1320 w
816 1320 m
50 build_bx
866 1320 m
10 PA f
(Each section occupies one contiguous \(possibly empty\) sequence of bytes within a \256le.)12 3805 1 932 1320 t
10 S f
()816 1500 w
816 1500 m
50 build_bx
866 1500 m
10 PA f
( byte in a \256le resides in more than one section.)10 2039( No)1 188(Sections in a \256le may not overlap.)6 1490 3 932 1500 t
10 S f
()816 1680 w
816 1680 m
50 build_bx
866 1680 m
10 PA f
( various headers and the sections might not ``cover'')8 2303( The)1 217(An object \256le may have inactive space.)6 1704 3 932 1680 t
( contents of the inactive data are unspeci\256ed.)7 1988( The)1 217(every byte in an object \256le.)5 1181 3 932 1800 t
(A section header has the following structure.)6 1983 1 658 1980 t
8 HB f
5338 2140 658 2140 Dl
9 HB f
( Header)1 330( Section)1 375(Figure 1-9:)1 460 3 658 2240 t
 /oldm /m load def /m {} def
 gsave 766 -2536 moveto
 766 -3916 946 -3916 180  arcto 4 {pop} repeat
 5266 -3916 5266 -3736 180  arcto 4 {pop} repeat
 5266 -2356 5086 -2356 180  arcto 4 {pop} repeat
 766 -2356 766 -2536 180  arcto 4 {pop} repeat
 0.999 setgray fill grestore 
 /m /oldm load def
8 CW f
766 3736 766 2536 Dl
766 3736 180 0 0 180 Da
5086 3916 946 3916 Dl
5086 3916 0 -180 180 0 Da
5266 2536 5266 3736 Dl
5266 2536 -180 0 0 -180 Da
946 2356 5086 2356 Dl
946 2356 0 180 -180 0 Da
( {)1 88( t r u c t)5 220( s)1 88(t y p e d e f)6 312 4 908 2636 t
( h _ n a m e ;)7 308( s)1 324(E l f 3 2 _ W o r d)9 444 3 1268 2736 t
( h _ t y p e ;)7 308( s)1 324(E l f 3 2 _ W o r d)9 444 3 1268 2836 t
( h _ f l a g s ;)8 352( s)1 324(E l f 3 2 _ W o r d)9 444 3 1268 2936 t
( h _ a d d r ;)7 308( s)1 324(E l f 3 2 _ A d d r)9 444 3 1268 3036 t
( h _ o f f s e t ;)9 396( s)1 368(E l f 3 2 _ O f f)8 400 3 1268 3136 t
( h _ s i z e ;)7 308( s)1 324(E l f 3 2 _ W o r d)9 444 3 1268 3236 t
( h _ l i n k ;)7 308( s)1 324(E l f 3 2 _ W o r d)9 444 3 1268 3336 t
( h _ i n f o ;)7 308( s)1 324(E l f 3 2 _ W o r d)9 444 3 1268 3436 t
( h _ a d d r a l i g n ;)12 528( s)1 324(E l f 3 2 _ W o r d)9 444 3 1268 3536 t
( h _ e n t s i z e ;)10 440( s)1 324(E l f 3 2 _ W o r d)9 444 3 1268 3636 t
( l f 3 2 _ S h d r ;)10 440(} E)1 136 2 908 3736 t
5338 4044 658 4044 Dl
10 CW f
(sh_name)658 4284 w
10 PA f
( value is an index into the section)7 1468( Its)1 159(This member speci\256es the name of the section.)7 2050 3 1522 4284 t
(header string table section [see ``String Table'' below], giving the location of a null-)13 3658 1 1522 4404 t
(terminated string.)1 796 1 1522 4524 t
10 CW f
(sh_type)658 4704 w
10 PA f
( types and their)3 691( Section)1 370(This member categorizes the section's contents and semantics.)7 2744 3 1522 4704 t
(descriptions appear below.)2 1194 1 1522 4824 t
10 CW f
(sh_flags)658 5004 w
10 PA f
( de\256nitions)1 499( Flag)1 241(Sections support 1-bit \257ags that describe miscellaneous attributes.)7 2907 3 1522 5004 t
(appear below.)1 628 1 1522 5124 t
10 CW f
(sh_addr)658 5304 w
10 PA f
(If the section will appear in the memory image of a process, this member gives the)15 3633 1 1522 5304 t
( the member con-)3 771( Otherwise,)1 535(address at which the section's \256rst byte should reside.)8 2383 3 1522 5424 t
(tains 0.)1 312 1 1522 5544 t
10 CW f
(sh_offset)658 5724 w
10 PA f
(This member's value gives the byte offset from the beginning of the \256le to the \256rst)15 3621 1 1522 5724 t
( section type,)2 581( One)1 235(byte in the section.)3 827 3 1522 5844 t
10 CW f
(SHT_NOBITS)3190 5844 w
10 PA f
(described below, occupies no)3 1293 1 3823 5844 t
(space in the \256le, and its)5 1031 1 1522 5964 t
10 CW f
(sh_offset)2578 5964 w
10 PA f
(member locates the conceptual placement in the)6 2122 1 3151 5964 t
(\256le.)1522 6084 w
10 CW f
(sh_size)658 6264 w
10 PA f
( the section type is)4 816( Unless)1 347(This member gives the section's size in bytes.)7 1996 3 1522 6264 t
10 CW f
(SHT_NOBITS)1522 6384 w
10 PA f
(, the section occupies)3 930 1 2130 6384 t
10 CW f
(sh_size)3085 6384 w
10 PA f
( section of type)3 669( A)1 128(bytes in the \256le.)3 698 3 3538 6384 t
10 CW f
(SHT_NOBITS)1522 6504 w
10 PA f
(may have a non-zero size, but it occupies no space in the \256le.)12 2685 1 2155 6504 t
10 CW f
(sh_link)658 6684 w
10 PA f
(This member holds a section header table index link, whose interpretation depends)11 3679 1 1522 6684 t
( table below describes the values.)5 1468( A)1 128(on the section type.)3 858 3 1522 6804 t
9 PB f
( Formats Speci\256cation, Version 1.1)4 1413( Portable)1 851(Tool Interface Standards \(TIS\))3 1249 3 658 7324 t
9 R f
(1-9)5218 7324 w
cleartomark
showpage
restore
%%EndPage: 9 15
%%Page: 10 16
save
mark
16 pagesetup
9 HB f
(ELF: Executable and Linkable Format)4 1605 1 540 540 t
5400 540 2217 540 Dl
10 CW f
(sh_info)540 1020 w
10 PA f
(This member holds extra information, whose interpretation depends on the section)10 3667 1 1404 1020 t
( table below describes the values.)5 1468(type. A)1 350 2 1404 1140 t
10 CW f
(sh_addralign)540 1320 w
10 PA f
( example, if a section holds a)6 1266( For)1 201(Some sections have address alignment constraints.)5 2234 3 1404 1320 t
(doubleword, the system must ensure doubleword alignment for the entire section.)10 3642 1 1404 1440 t
(That is, the value of)4 868 1 1404 1560 t
10 CW f
(sh_addr)2297 1560 w
10 PA f
(must be congruent to 0, modulo the value of)8 1959 1 2750 1560 t
10 CW f
(sh_addralign)1404 1680 w
10 PA f
( only 0 and positive integral powers of two are allowed.)10 2467(. Currently,)1 535 2 2132 1680 t
(Values 0 and 1 mean the section has no alignment constraints.)10 2733 1 1404 1800 t
10 CW f
(sh_entsize)540 1980 w
10 PA f
( such a sec-)3 496( For)1 201(Some sections hold a table of \256xed-size entries, such as a symbol table.)12 3109 3 1404 1980 t
( member contains 0 if the)5 1112( The)1 217(tion, this member gives the size in bytes of each entry.)10 2387 3 1404 2100 t
(section does not hold a table of \256xed-size entries.)8 2164 1 1404 2220 t
(A section header's)2 812 1 540 2460 t
10 CW f
(sh_type)1377 2460 w
10 PA f
(member speci\256es the section's semantics.)4 1818 1 1830 2460 t
8 HB f
5220 2620 540 2620 Dl
9 HB f
( Types,)1 310( Section)1 375(Figure 1-10:)1 510 3 540 2720 t
9 CW f
(sh_type)1760 2720 w
10 PA f
(Name Value)1 1074 1 2370 2912 t
10 S f
(_ _____________________________)1 1470 1 2145 2932 t
10 CW f
(SHT_NULL 0)1 1470 1 2145 3052 t
(SHT_PROGBITS 1)1 1470 1 2145 3172 t
(SHT_SYMTAB 2)1 1470 1 2145 3292 t
(SHT_STRTAB 3)1 1470 1 2145 3412 t
(SHT_RELA 4)1 1470 1 2145 3532 t
(SHT_HASH 5)1 1470 1 2145 3652 t
(SHT_DYNAMIC 6)1 1470 1 2145 3772 t
(SHT_NOTE 7)1 1470 1 2145 3892 t
(SHT_NOBITS 8)1 1470 1 2145 4012 t
(SHT_REL 9)1 1470 1 2145 4132 t
(SHT_SHLIB 10)1 1470 1 2145 4252 t
(SHT_DYNSYM 11)1 1470 1 2145 4372 t
(SHT_LOPROC 0x70000000)1 1470 1 2145 4492 t
(SHT_HIPROC 0x7fffffff)1 1470 1 2145 4612 t
(SHT_LOUSER 0x80000000)1 1470 1 2145 4732 t
(SHT_HIUSER 0xffffffff)1 1470 1 2145 4852 t
10 S f
( \347)1 -675(_ _____________________________)1 1470 2 2145 4908 t
(\347)2940 4832 w
(\347)2940 4732 w
(\347)2940 4632 w
(\347)2940 4532 w
(\347)2940 4432 w
(\347)2940 4332 w
(\347)2940 4232 w
(\347)2940 4132 w
(\347)2940 4032 w
(\347)2940 3932 w
(\347)2940 3832 w
(\347)2940 3732 w
(\347)2940 3632 w
(\347)2940 3532 w
(\347)2940 3432 w
(\347)2940 3332 w
(\347)2940 3232 w
(\347)2940 3132 w
(\347)2940 3032 w
8 PA f
5220 5100 540 5100 Dl
10 CW f
(SHT_NULL)540 5400 w
10 PA f
(This value marks the section header as inactive; it does not have an associated section.)14 3798 1 1390 5400 t
(Other members of the section header have unde\256ned values.)8 2685 1 1390 5520 t
10 CW f
(SHT_PROGBITS)540 5700 w
10 PA f
(The section holds information de\256ned by the program, whose format and meaning are)12 3829 1 1390 5700 t
(determined solely by the program.)4 1537 1 1390 5820 t
10 CW f
(SHT_SYMTAB)540 6000 w
10 PA f
(and)1165 6000 w
10 CW f
(SHT_DYNSYM)1359 6000 w
10 PA f
( an object \256le may have only one sec-)8 1636( Currently,)1 510(These sections hold a symbol table.)5 1551 3 1390 6120 t
( Typically,)1 489(tion of each type, but this restriction may be relaxed in the future.)12 2896 2 1390 6240 t
10 CW f
(SHT_SYMTAB)1390 6360 w
10 PA f
(provides symbols for link editing, though it may also be used for)11 2866 1 2023 6360 t
( a complete symbol table, it may contain many symbols unneces-)10 2863( As)1 170(dynamic linking.)1 751 3 1390 6480 t
( an object \256le may also contain a)7 1426( Consequently,)1 689(sary for dynamic linking.)3 1117 3 1390 6600 t
10 CW f
(SHT_DYNSYM)1390 6720 w
10 PA f
(section, which holds a minimal set of dynamic linking symbols, to save)11 3135 1 2023 6720 t
( ``Symbol Table'' below for details.)5 1531(space. See)1 468 2 1390 6840 t
9 R f
(1-10)540 7324 w
9 PB f
( Interface Standards \(TIS\))3 1059( Tool)1 535(Portable Formats Speci\256cation, Version 1.1)4 1758 3 1868 7324 t
cleartomark
showpage
restore
%%EndPage: 10 16
%%Page: 11 17
save
mark
17 pagesetup
9 HB f
3841 540 658 540 Dl
(ELF: Executable and Linkable Format)4 1605 1 3913 540 t
10 CW f
(SHT_STRTAB)658 1020 w
10 PA f
( object \256le may have multiple string table sections.)8 2227( An)1 186(The section holds a string table.)5 1394 3 1508 1020 t
(See ``String Table'' below for details.)5 1613 1 1508 1140 t
10 CW f
(SHT_RELA)658 1320 w
10 PA f
(The section holds relocation entries with explicit addends, such as type)10 3136 1 1508 1320 t
10 CW f
(Elf32_Rela)4669 1320 w
10 PA f
( object \256le may have multiple relocation sections.)7 2170( An)1 186(for the 32-bit class of object \256les.)6 1425 3 1508 1440 t
(See ``Relocation'' below for details.)4 1544 1 1508 1560 t
10 CW f
(SHT_HASH)658 1740 w
10 PA f
( objects participating in dynamic linking)5 1784( All)1 186(The section holds a symbol hash table.)6 1694 3 1508 1740 t
( an object \256le may have only one hash)8 1677( Currently,)1 510(must contain a symbol hash table.)5 1498 3 1508 1860 t
( ``Hash Table'' in Part 2 for)6 1186( See)1 199(table, but this restriction may be relaxed in the future.)9 2376 3 1508 1980 t
(details.)1508 2100 w
10 CW f
(SHT_DYNAMIC)658 2280 w
10 PA f
( an object \256le may have)5 1035( Currently,)1 510(The section holds information for dynamic linking.)6 2253 3 1508 2280 t
( See)1 199(only one dynamic section, but this restriction may be relaxed in the future.)12 3290 2 1508 2400 t
(``Dynamic Section'' in Part 2 for details.)6 1749 1 1508 2520 t
10 CW f
(SHT_NOTE)658 2700 w
10 PA f
( ``Note Section'' in)3 813( See)1 199(The section holds information that marks the \256le in some way.)10 2760 3 1508 2700 t
(Part 2 for details.)3 753 1 1508 2820 t
10 CW f
(SHT_NOBITS)658 3000 w
10 PA f
(A section of this type occupies no space in the \256le but otherwise resembles)13 3286 1 1508 3000 t
10 CW f
(SHT_PROGBITS)1508 3120 w
10 PA f
( this section contains no bytes, the)6 1501(. Although)1 502 2 2236 3120 t
10 CW f
(sh_offset)4264 3120 w
10 PA f
(member)4837 3120 w
(contains the conceptual \256le offset.)4 1496 1 1508 3240 t
10 CW f
(SHT_REL)658 3420 w
10 PA f
(The section holds relocation entries without explicit addends, such as type)10 3284 1 1508 3420 t
10 CW f
(Elf32_Rel)1508 3540 w
10 PA f
( object \256le may have multiple reloca-)6 1627( An)1 186(for the 32-bit class of object \256les.)6 1425 3 2081 3540 t
( ``Relocation'' below for details.)4 1395( See)1 199(tion sections.)1 576 3 1508 3660 t
10 CW f
(SHT_SHLIB)658 3840 w
10 PA f
( that contain a)3 626( Programs)1 481(This section type is reserved but has unspeci\256ed semantics.)8 2618 3 1508 3840 t
(section of this type do not conform to the ABI.)9 2041 1 1508 3960 t
10 CW f
(SHT_LOPROC)658 4140 w
10 PA f
(through)1283 4140 w
10 CW f
(SHT_HIPROC)1668 4140 w
10 PA f
(Values in this inclusive range are reserved for processor-speci\256c semantics.)9 3317 1 1508 4260 t
10 CW f
(SHT_LOUSER)658 4440 w
10 PA f
(This value speci\256es the lower bound of the range of indexes reserved for application)13 3728 1 1508 4440 t
(programs.)1508 4560 w
10 CW f
(SHT_HIUSER)658 4740 w
10 PA f
(This value speci\256es the upper bound of the range of indexes reserved for application)13 3741 1 1508 4740 t
( types between)2 662(programs. Section)1 826 2 1508 4860 t
10 CW f
(SHT_LOUSER)3021 4860 w
10 PA f
(and)3654 4860 w
10 CW f
(SHT_HIUSER)3848 4860 w
10 PA f
(may be used by)3 694 1 4481 4860 t
(the application, without con\257icting with current or future system-de\256ned section)9 3587 1 1508 4980 t
(types.)1508 5100 w
( mentioned before, the section header for index 0)8 2161( As)1 170(Other section type values are reserved.)5 1720 3 658 5340 t
(\()658 5460 w
10 CW f
(SHN_UNDEF)691 5460 w
10 PA f
( entry holds the fol-)4 869( This)1 240(\) exists, even though the index marks unde\256ned section references.)9 2960 3 1231 5460 t
(lowing.)658 5580 w
8 HB f
5338 5740 658 5740 Dl
9 HB f
( Header Table Entry: Index 0)5 1210( Section)1 375(Figure 1-11:)1 510 3 658 5840 t
10 PA f
( Note)1 956(Name Value)1 1044 2 1887 6032 t
10 S f
(_ _____________________________________________________)1 2671 1 1662 6052 t
10 CW f
(sh_name 0)1 1170 1 1662 6172 t
10 PA f
(No name)1 407 1 3222 6172 t
10 CW f
(sh_type SHT_NULL)1 1380 1 1662 6292 t
10 PA f
(Inactive)3222 6292 w
10 CW f
(sh_flags 0)1 1170 1 1662 6412 t
10 PA f
(No \257ags)1 372 1 3222 6412 t
10 CW f
(sh_addr 0)1 1170 1 1662 6532 t
10 PA f
(No address)1 507 1 3222 6532 t
10 CW f
(sh_offset 0)1 1170 1 1662 6652 t
10 PA f
(No \256le offset)2 570 1 3222 6652 t
10 CW f
(sh_size 0)1 1170 1 1662 6772 t
10 PA f
(No size)1 332 1 3222 6772 t
10 S f
(\347)2457 6772 w
(\347)2457 6752 w
(\347)2457 6652 w
(\347)2457 6552 w
(\347)2457 6452 w
(\347)2457 6352 w
(\347)2457 6252 w
(\347)2457 6152 w
(\347)3147 6772 w
(\347)3147 6752 w
(\347)3147 6652 w
(\347)3147 6552 w
(\347)3147 6452 w
(\347)3147 6352 w
(\347)3147 6252 w
(\347)3147 6152 w
9 PB f
( Formats Speci\256cation, Version 1.1)4 1413( Portable)1 851(Tool Interface Standards \(TIS\))3 1249 3 658 7324 t
9 R f
(1-11)5173 7324 w
cleartomark
showpage
restore
%%EndPage: 11 17
%%Page: 12 18
save
mark
18 pagesetup
9 HB f
(ELF: Executable and Linkable Format)4 1605 1 540 540 t
5400 540 2217 540 Dl
8 HB f
5220 1000 540 1000 Dl
9 HB f
( Header Table Entry: Index 0)5 1210( Section)1 375(Figure 1-11:)1 510 3 540 1100 t
9 H f
(\(continued \))1 465 1 2685 1100 t
10 CW f
(sh_link SHN_UNDEF)1 1410 1 1544 1292 t
10 PA f
(No link information)2 888 1 3104 1292 t
10 CW f
(sh_info 0)1 1170 1 1544 1412 t
10 PA f
(No auxiliary information)2 1111 1 3104 1412 t
10 CW f
(sh_addralign 0)1 1170 1 1544 1532 t
10 PA f
(No alignment)1 612 1 3104 1532 t
10 CW f
(sh_entsize 0)1 1170 1 1544 1652 t
10 PA f
(No entries)1 461 1 3104 1652 t
10 S f
( \347)1 -1876(_ _____________________________________________________)1 2671 2 1544 1708 t
(\347)2339 1692 w
(\347)2339 1592 w
(\347)2339 1492 w
(\347)2339 1392 w
(\347)2339 1292 w
(\347)3029 1708 w
(\347)3029 1692 w
(\347)3029 1592 w
(\347)3029 1492 w
(\347)3029 1392 w
(\347)3029 1292 w
8 PA f
5220 1900 540 1900 Dl
10 PA f
(A section header's)2 812 1 540 2140 t
10 CW f
(sh_flags)1377 2140 w
10 PA f
( De\256ned)1 403(member holds 1-bit \257ags that describe the section's attributes.)8 2728 2 1890 2140 t
(values appear below; other values are reserved.)6 2103 1 540 2260 t
8 HB f
5220 2420 540 2420 Dl
9 HB f
( Attribute Flags,)2 685( Section)1 375(Figure 1-12:)1 510 3 540 2520 t
9 CW f
(sh_flags)2135 2520 w
10 PA f
(Name Value)1 1104 1 2370 2712 t
10 S f
(_ ______________________________)1 1530 1 2115 2732 t
10 CW f
(SHF_WRITE 0x1)1 1530 1 2115 2852 t
(SHF_ALLOC 0x2)1 1530 1 2115 2972 t
(SHF_EXECINSTR 0x4)1 1530 1 2115 3092 t
(SHF_MASKPROC 0xf0000000)1 1530 1 2115 3212 t
10 S f
( \347)1 -675(_ ______________________________)1 1530 2 2115 3268 t
(\347)2970 3232 w
(\347)2970 3132 w
(\347)2970 3032 w
(\347)2970 2932 w
(\347)2970 2832 w
8 PA f
5220 3460 540 3460 Dl
10 PA f
(If a \257ag bit is set in)6 832 1 540 3640 t
10 CW f
(sh_flags)1397 3640 w
10 PA f
( the attribute is ``off'' or)5 1044( Otherwise,)1 535(, the attribute is ``on'' for the section.)7 1617 3 1885 3640 t
( attributes are set to zero.)5 1115( Unde\256ned)1 523(does not apply.)2 682 3 540 3760 t
10 CW f
(SHF_WRITE)540 3940 w
10 PA f
(The section contains data that should be writable during process execution.)10 3325 1 1440 3940 t
10 CW f
(SHF_ALLOC)540 4120 w
10 PA f
( control sections do)3 856( Some)1 294(The section occupies memory during process execution.)6 2470 3 1440 4120 t
(not reside in the memory image of an object \256le; this attribute is off for those sections.)16 3778 1 1440 4240 t
10 CW f
(SHF_EXECINSTR)540 4420 w
10 PA f
(The section contains executable machine instructions.)5 2360 1 1440 4420 t
10 CW f
(SHF_MASKPROC)540 4600 w
10 PA f
(All bits included in this mask are reserved for processor-speci\256c semantics.)10 3315 1 1440 4600 t
(Two members in the section header,)5 1598 1 540 4840 t
10 CW f
(sh_link)2163 4840 w
10 PA f
(and)2616 4840 w
10 CW f
(sh_info)2810 4840 w
10 PA f
(, hold special information, depending on)5 1800 1 3238 4840 t
(section type.)1 556 1 540 4960 t
9 R f
(1-12)540 7324 w
9 PB f
( Interface Standards \(TIS\))3 1059( Tool)1 535(Portable Formats Speci\256cation, Version 1.1)4 1758 3 1868 7324 t
cleartomark
showpage
restore
%%EndPage: 12 18
%%Page: 13 19
save
mark
19 pagesetup
9 HB f
3841 540 658 540 Dl
(ELF: Executable and Linkable Format)4 1605 1 3913 540 t
8 HB f
5338 1000 658 1000 Dl
9 HB f
(Figure 1-13:)1 510 1 658 1100 t
9 CW f
(sh_link)1218 1100 w
9 HB f
(and)1621 1100 w
9 CW f
(sh_info)1835 1100 w
9 HB f
(Interpretation)2238 1100 w
10 CW f
( sh_info)1 1410(sh_type sh_link)1 1530 2 1378 1292 t
10 S f
(_ _____________________________________________________________________)1 3480 1 1258 1348 t
10 PA f
(The section header index of)4 1217 1 2068 1468 t
(the string table used by)4 1034 1 2068 1588 t
(entries in the section.)3 933 1 2068 1708 t
10 CW f
(SHT_DYNAMIC 0)1 2280 1 1258 1468 t
10 S f
(_ _____________________________________________________________________)1 3480 1 1258 1748 t
10 PA f
(The section header index of)4 1217 1 2068 1868 t
(the symbol table to which)4 1139 1 2068 1988 t
(the hash table applies.)3 980 1 2068 2108 t
10 CW f
(SHT_HASH 0)1 2280 1 1258 1868 t
10 S f
(_ _____________________________________________________________________)1 3480 1 1258 2148 t
10 CW f
(SHT_REL)1258 2268 w
(SHT_RELA)1258 2388 w
10 PA f
(The section header index of)4 1217 1 2068 2268 t
(the associated symbol table.)3 1233 1 2068 2388 t
(The section header index of)4 1217 1 3478 2268 t
(the section to which the)4 1047 1 3478 2388 t
(relocation applies.)1 809 1 3478 2508 t
10 S f
(_ _____________________________________________________________________)1 3480 1 1258 2548 t
10 CW f
(SHT_SYMTAB)1258 2668 w
(SHT_DYNSYM)1258 2788 w
10 PA f
(The section header index of)4 1217 1 2068 2668 t
(the associated string table.)3 1166 1 2068 2788 t
(One greater than the sym-)4 1157 1 3478 2668 t
(bol table index of the last)5 1108 1 3478 2788 t
(local symbol \(binding)2 961 1 3478 2908 t
10 CW f
(STB_LOCAL)3478 3028 w
10 PA f
(\).)4026 3028 w
10 S f
(_ _____________________________________________________________________)1 3480 1 1258 3068 t
10 PA f
(other)1258 3188 w
10 CW f
(SHN_UNDEF 0)1 1470 1 2068 3188 t
10 S f
( \347)1 -2745(_ _____________________________________________________________________)1 3480 2 1258 3244 t
(\347)1993 3148 w
(\347)1993 3048 w
(\347)1993 2948 w
(\347)1993 2848 w
(\347)1993 2748 w
(\347)1993 2648 w
(\347)1993 2548 w
(\347)1993 2448 w
(\347)1993 2348 w
(\347)1993 2248 w
(\347)1993 2148 w
(\347)1993 2048 w
(\347)1993 1948 w
(\347)1993 1848 w
(\347)1993 1748 w
(\347)1993 1648 w
(\347)1993 1548 w
(\347)1993 1448 w
(\347)3403 3244 w
(\347)3403 3148 w
(\347)3403 3048 w
(\347)3403 2948 w
(\347)3403 2848 w
(\347)3403 2748 w
(\347)3403 2648 w
(\347)3403 2548 w
(\347)3403 2448 w
(\347)3403 2348 w
(\347)3403 2248 w
(\347)3403 2148 w
(\347)3403 2048 w
(\347)3403 1948 w
(\347)3403 1848 w
(\347)3403 1748 w
(\347)3403 1648 w
(\347)3403 1548 w
(\347)3403 1448 w
8 PA f
5338 3436 658 3436 Dl
14 HB f
(Special Sections)1 1113 1 658 3876 t
10 PA f
( in the list below are used by the system)9 1762( Sections)1 412(Various sections hold program and control information.)6 2477 3 658 4116 t
(and have the indicated types and attributes.)6 1939 1 658 4236 t
8 HB f
5338 4396 658 4396 Dl
9 HB f
( Sections)1 400( Special)1 365(Figure 1-14:)1 510 3 658 4496 t
10 PA f
( Attributes)1 1329(Name Type)1 1027 2 1647 4688 t
10 S f
(_ ___________________________________________________________)1 2972 1 1512 4708 t
10 CW f
( + SHF_WRITE)2 632( SHF_ALLOC)1 810(.bss SHT_NOBITS)1 1290 3 1512 4828 t
(.comment SHT_PROGBITS)1 1410 1 1512 4948 t
10 PA f
(none)3072 4948 w
10 CW f
( + SHF_WRITE)2 632( SHF_ALLOC)1 690(.data SHT_PROGBITS)1 1410 3 1512 5068 t
( + SHF_WRITE)2 632( SHF_ALLOC)1 690(.data1 SHT_PROGBITS)1 1410 3 1512 5188 t
(.debug SHT_PROGBITS)1 1410 1 1512 5308 t
10 PA f
(none)3072 5308 w
10 CW f
(.dynamic SHT_DYNAMIC)1 1350 1 1512 5428 t
10 PA f
(see below)1 433 1 3072 5428 t
10 CW f
(.dynstr SHT_STRTAB SHF_ALLOC)2 2100 1 1512 5548 t
(.dynsym SHT_DYNSYM SHF_ALLOC)2 2100 1 1512 5668 t
( + SHF_EXECINSTR)2 872( SHF_ALLOC)1 690(.fini SHT_PROGBITS)1 1410 3 1512 5788 t
(.got SHT_PROGBITS)1 1410 1 1512 5908 t
10 PA f
(see below)1 433 1 3072 5908 t
10 CW f
(.hash SHT_HASH SHF_ALLOC)2 2100 1 1512 6028 t
( + SHF_EXECINSTR)2 872( SHF_ALLOC)1 690(.init SHT_PROGBITS)1 1410 3 1512 6148 t
(.interp SHT_PROGBITS)1 1410 1 1512 6268 t
10 PA f
(see below)1 433 1 3072 6268 t
10 CW f
(.line SHT_PROGBITS)1 1410 1 1512 6388 t
10 PA f
(none)3072 6388 w
10 CW f
(.note SHT_NOTE)1 1170 1 1512 6508 t
10 PA f
(none)3072 6508 w
10 CW f
(.plt SHT_PROGBITS)1 1410 1 1512 6628 t
10 PA f
(see below)1 433 1 3072 6628 t
10 CW f
(.rel)1512 6748 w
10 PI f
(name)1752 6748 w
10 CW f
(SHT_REL)2202 6748 w
10 PA f
(see below)1 433 1 3072 6748 t
10 S f
(\347)2127 6748 w
(\347)2127 6708 w
(\347)2127 6608 w
(\347)2127 6508 w
(\347)2127 6408 w
(\347)2127 6308 w
(\347)2127 6208 w
(\347)2127 6108 w
(\347)2127 6008 w
(\347)2127 5908 w
(\347)2127 5808 w
(\347)2127 5708 w
(\347)2127 5608 w
(\347)2127 5508 w
(\347)2127 5408 w
(\347)2127 5308 w
(\347)2127 5208 w
(\347)2127 5108 w
(\347)2127 5008 w
(\347)2127 4908 w
(\347)2127 4808 w
(\347)2997 6748 w
(\347)2997 6708 w
(\347)2997 6608 w
(\347)2997 6508 w
(\347)2997 6408 w
(\347)2997 6308 w
(\347)2997 6208 w
(\347)2997 6108 w
(\347)2997 6008 w
(\347)2997 5908 w
(\347)2997 5808 w
(\347)2997 5708 w
(\347)2997 5608 w
(\347)2997 5508 w
(\347)2997 5408 w
(\347)2997 5308 w
(\347)2997 5208 w
(\347)2997 5108 w
(\347)2997 5008 w
(\347)2997 4908 w
(\347)2997 4808 w
9 PB f
( Formats Speci\256cation, Version 1.1)4 1413( Portable)1 851(Tool Interface Standards \(TIS\))3 1249 3 658 7324 t
9 R f
(1-13)5173 7324 w
cleartomark
showpage
restore
%%EndPage: 13 19
%%Page: 14 20
save
mark
20 pagesetup
9 HB f
(ELF: Executable and Linkable Format)4 1605 1 540 540 t
5400 540 2217 540 Dl
8 HB f
5220 1000 540 1000 Dl
9 HB f
( Sections)1 400( Special)1 365(Figure 1-14:)1 510 3 540 1100 t
9 H f
(\(continued \))1 465 1 1865 1100 t
10 CW f
(.rela)1394 1292 w
10 PI f
(name)1694 1292 w
10 CW f
(SHT_RELA)2084 1292 w
10 PA f
(see below)1 433 1 2954 1292 t
10 CW f
( SHF_ALLOC)1 690(.rodata SHT_PROGBITS)1 1410 2 1394 1412 t
( SHF_ALLOC)1 690(.rodata1 SHT_PROGBITS)1 1410 2 1394 1532 t
(.shstrtab SHT_STRTAB)1 1290 1 1394 1652 t
10 PA f
(none)2954 1652 w
10 CW f
(.strtab SHT_STRTAB)1 1290 1 1394 1772 t
10 PA f
(see below)1 433 1 2954 1772 t
10 CW f
(.symtab SHT_SYMTAB)1 1290 1 1394 1892 t
10 PA f
(see below)1 433 1 2954 1892 t
10 CW f
( + SHF_EXECINSTR)2 872( SHF_ALLOC)1 690(.text SHT_PROGBITS)1 1410 3 1394 2012 t
10 S f
( \347)1 -2357(_ ___________________________________________________________)1 2972 2 1394 2068 t
(\347)2009 1992 w
(\347)2009 1892 w
(\347)2009 1792 w
(\347)2009 1692 w
(\347)2009 1592 w
(\347)2009 1492 w
(\347)2009 1392 w
(\347)2009 1292 w
(\347)2879 2068 w
(\347)2879 1992 w
(\347)2879 1892 w
(\347)2879 1792 w
(\347)2879 1692 w
(\347)2879 1592 w
(\347)2879 1492 w
(\347)2879 1392 w
(\347)2879 1292 w
8 PA f
5220 2260 540 2260 Dl
10 CW f
(.bss)540 2500 w
10 PA f
( By)1 167(This section holds uninitialized data that contribute to the program's memory image.)11 3762 2 1190 2500 t
( The)1 217(de\256nition, the system initializes the data with zeros when the program begins to run.)13 3761 2 1190 2620 t
(section occupies no \256le space, as indicated by the section type,)10 2747 1 1190 2740 t
10 CW f
(SHT_NOBITS)3962 2740 w
10 PA f
(.)4570 2740 w
10 CW f
(.comment)540 2920 w
10 PA f
(This section holds version control information.)5 2064 1 1190 2920 t
10 CW f
(.data)540 3100 w
10 PA f
(and)865 3100 w
10 CW f
(.data1)1059 3100 w
10 PA f
(These sections hold initialized data that contribute to the program's memory image.)11 3711 1 1190 3220 t
10 CW f
(.debug)540 3400 w
10 PA f
( contents are unspeci\256ed.)3 1120( The)1 217(This section holds information for symbolic debugging.)6 2452 3 1190 3400 t
10 CW f
(.dynamic)540 3580 w
10 PA f
( section's attributes will include the)5 1565( The)1 217(This section holds dynamic linking information.)5 2123 3 1190 3580 t
10 CW f
(SHF_ALLOC)1190 3700 w
10 PA f
( the)1 164(bit. Whether)1 577 2 1755 3700 t
10 CW f
(SHF_WRITE)2521 3700 w
10 PA f
( Part 2 for)3 436( See)1 199(bit is set is processor speci\256c.)5 1286 3 3086 3700 t
(more information.)1 809 1 1190 3820 t
10 CW f
(.dynstr)540 4000 w
10 PA f
(This section holds strings needed for dynamic linking, most commonly the strings that)12 3826 1 1190 4000 t
( Part 2 for more information.)5 1270( See)1 199(represent the names associated with symbol table entries.)7 2537 3 1190 4120 t
10 CW f
(.dynsym)540 4300 w
10 PA f
( See)1 199(This section holds the dynamic linking symbol table, as ``Symbol Table'' describes.)11 3641 2 1190 4300 t
(Part 2 for more information.)4 1245 1 1190 4420 t
10 CW f
(.fini)540 4600 w
10 PA f
(This section holds executable instructions that contribute to the process termination code.)11 3950 1 1190 4600 t
(That is, when a program exits normally, the system arranges to execute the code in this)15 3842 1 1190 4720 t
(section.)1190 4840 w
10 CW f
(.got)540 5020 w
10 PA f
( ``Special Sections'' in Part 1 and ``Global)7 1801( See)1 199(This section holds the global offset table.)6 1791 3 1190 5020 t
(Offset Table'' in Part 2 for more information.)7 1974 1 1190 5140 t
10 CW f
(.hash)540 5320 w
10 PA f
( ``Hash Table'' in Part 2 for more information.)8 2020( See)1 199(This section holds a symbol hash table.)6 1717 3 1190 5320 t
10 CW f
(.init)540 5500 w
10 PA f
(This section holds executable instructions that contribute to the process initialization code.)11 3990 1 1190 5500 t
(That is, when a program starts to run, the system arranges to execute the code in this sec-)17 3936 1 1190 5620 t
(tion before calling the main program entry point \(called)8 2466 1 1190 5740 t
10 CW f
(main)3681 5740 w
10 PA f
(for C programs\).)2 738 1 3954 5740 t
10 CW f
(.interp)540 5920 w
10 PA f
( the \256le has a loadable seg-)6 1183( If)1 117(This section holds the path name of a program interpreter.)9 2582 3 1190 5920 t
(ment that includes the section, the section's attributes will include the)10 3074 1 1190 6040 t
10 CW f
(SHF_ALLOC)4289 6040 w
10 PA f
(bit; oth-)1 346 1 4862 6040 t
( Part 2 for more information.)5 1270( See)1 199(erwise, that bit will be off.)5 1150 3 1190 6160 t
10 CW f
(.line)540 6340 w
10 PA f
(This section holds line number information for symbolic debugging, which describes the)11 3910 1 1190 6340 t
( contents are)2 559( The)1 217(correspondence between the source program and the machine code.)8 3007 3 1190 6460 t
(unspeci\256ed.)1190 6580 w
9 R f
(1-14)540 7324 w
9 PB f
( Interface Standards \(TIS\))3 1059( Tool)1 535(Portable Formats Speci\256cation, Version 1.1)4 1758 3 1868 7324 t
cleartomark
showpage
restore
%%EndPage: 14 20
%%Page: 15 21
save
mark
21 pagesetup
9 HB f
3841 540 658 540 Dl
(ELF: Executable and Linkable Format)4 1605 1 3913 540 t
10 CW f
(.note)658 1020 w
10 PA f
(This section holds information in the format that ``Note Section'' in Part 2 describes.)13 3701 1 1308 1020 t
10 CW f
(.plt)658 1200 w
10 PA f
( ``Special Sections'' in Part 1 and ``Pro-)7 1695( See)1 199(This section holds the procedure linkage table.)6 2055 3 1308 1200 t
(cedure Linkage Table'' in Part 2 for more information.)8 2390 1 1308 1320 t
10 CW f
(.rel)658 1500 w
10 PI f
(name)898 1500 w
10 PA f
(and)1140 1500 w
10 CW f
(.rela)1334 1500 w
10 PI f
(name)1634 1500 w
10 PA f
( the \256le has)3 502( If)1 117(These sections hold relocation information, as ``Relocation'' below describes.)8 3381 3 1308 1620 t
(a loadable segment that includes relocation, the sections' attributes will include the)11 3665 1 1308 1740 t
10 CW f
(SHF_ALLOC)1308 1860 w
10 PA f
( Conventionally,)1 760(bit; otherwise, that bit will be off.)6 1463 2 1881 1860 t
10 PI f
(name)4129 1860 w
10 PA f
(is supplied by the)3 785 1 4371 1860 t
( a relocation section for)4 1028( Thus)1 271(section to which the relocations apply.)5 1696 3 1308 1980 t
10 CW f
(.text)4328 1980 w
10 PA f
(normally)4661 1980 w
(would have the name)3 958 1 1308 2100 t
10 CW f
(.rel.text)2291 2100 w
10 PA f
(or)2864 2100 w
10 CW f
(.rela.text)2984 2100 w
10 PA f
(.)3592 2100 w
10 CW f
(.rodata)658 2280 w
10 PA f
(and)1103 2280 w
10 CW f
(.rodata1)1297 2280 w
10 PA f
(These sections hold read-only data that typically contribute to a non-writable segment in)12 3919 1 1308 2400 t
( ``Program Header'' in Part 2 for more information.)8 2263( See)1 199(the process image.)2 816 3 1308 2520 t
10 CW f
(.shstrtab)658 2700 w
10 PA f
(This section holds section names.)4 1464 1 1308 2700 t
10 CW f
(.strtab)658 2880 w
10 PA f
(This section holds strings, most commonly the strings that represent the names associated)12 3969 1 1308 2880 t
( the \256le has a loadable segment that includes the symbol string)11 2769( If)1 117(with symbol table entries.)3 1141 3 1308 3000 t
(table, the section's attributes will include the)6 1969 1 1308 3120 t
10 CW f
(SHF_ALLOC)3302 3120 w
10 PA f
(bit; otherwise, that bit will be off.)6 1463 1 3875 3120 t
10 CW f
(.symtab)658 3300 w
10 PA f
( the \256le)2 327( If)1 117(This section holds a symbol table, as ``Symbol Table'' in this section describes.)12 3434 3 1308 3300 t
(has a loadable segment that includes the symbol table, the section's attributes will include)13 3964 1 1308 3420 t
(the)1308 3540 w
10 CW f
(SHF_ALLOC)1472 3540 w
10 PA f
(bit; otherwise, that bit will be off.)6 1463 1 2045 3540 t
10 CW f
(.text)658 3720 w
10 PA f
(This section holds the ``text,'' or executable instructions, of a program.)10 3098 1 1308 3720 t
(Section names with a dot \()5 1166 1 658 3960 t
10 CW f
(.)1824 3960 w
10 PA f
(\) pre\256x are reserved for the system, although applications may use these sec-)12 3394 1 1884 3960 t
( may use names without the pre\256x to avoid)8 1920( Applications)1 617(tions if their existing meanings are satisfactory.)6 2083 3 658 4080 t
( An)1 186( object \256le format lets one de\256ne sections not in the list above.)12 2729( The)1 217(con\257icts with system sections.)3 1329 4 658 4200 t
(object \256le may have more than one section with the same name.)11 2816 1 658 4320 t
(Section names reserved for a processor architecture are formed by placing an abbreviation of the architec-)15 4667 1 658 4500 t
( name should be taken from the architecture names used for)10 2654( The)1 217(ture name ahead of the section name.)6 1647 3 658 4620 t
10 CW f
(e_machine)658 4740 w
10 PA f
( Existing)1 410( instance .FOO.psect is the psect section de\256ned by the FOO architecture.)11 3227(. For)1 226 3 1198 4740 t
(extensions are called by their historical names.)6 2053 1 658 4860 t
(Pre-existing Extensions)1 1031 1 2482 5040 t
10 S f
(_ _______________________)1 1170 1 2413 5060 t
10 CW f
(.sdata .tdesc)1 1050 1 2413 5240 t
(.sbss .lit4)1 990 1 2413 5360 t
(.lit8 .reginfo)1 1170 1 2413 5480 t
(.gptab .liblist)1 1170 1 2413 5600 t
(.conflict)2413 5720 w
9 PB f
( Formats Speci\256cation, Version 1.1)4 1413( Portable)1 851(Tool Interface Standards \(TIS\))3 1249 3 658 7324 t
9 R f
(1-15)5173 7324 w
cleartomark
showpage
restore
%%EndPage: 15 21
%%Page: 16 22
save
mark
22 pagesetup
16 HB f
5340 516 540 516 Dl
(String Table)1 929 1 540 682 t
10 PA f
( object \256le)2 446( The)1 217(String table sections hold null-terminated character sequences, commonly called strings.)9 3897 3 540 1042 t
( references a string as an index into the)8 1719( One)1 235(uses these strings to represent symbol and section names.)8 2540 3 540 1162 t
( a)1 75( Likewise,)1 471( \256rst byte, which is index zero, is de\256ned to hold a null character.)13 2884( The)1 217(string table section.)2 857 5 540 1282 t
( A)1 128(string table's last byte is de\256ned to hold a null character, ensuring null termination for all strings.)16 4295 2 540 1402 t
( empty)1 310( An)1 186(string whose index is zero speci\256es either no name or a null name, depending on the context.)16 4112 3 540 1522 t
(string table section is permitted; its section header's)7 2281 1 540 1642 t
10 CW f
(sh_size)2846 1642 w
10 PA f
( Non-zero)1 472(member would contain zero.)3 1275 2 3299 1642 t
(indexes are invalid for an empty string table.)7 1982 1 540 1762 t
(A section header's)2 812 1 540 1942 t
10 CW f
(sh_name)1377 1942 w
10 PA f
(member holds an index into the section header string table section, as desig-)12 3364 1 1830 1942 t
(nated by the)2 550 1 540 2062 t
10 CW f
(e_shstrndx)1115 2062 w
10 PA f
( following \256gures show a string table with 25)8 1998( The)1 217(member of the ELF header.)4 1202 3 1748 2062 t
(bytes and the strings associated with various indexes.)7 2369 1 540 2182 t
( 9)1 58( +)1 212( 8)1 58( +)1 212( 7)1 58( +)1 212( 6)1 58( +)1 212( 5)1 58( +)1 212( 4)1 58( +)1 212( 3)1 58( +)1 212( 2)1 58( +)1 212( 1)1 58( +)1 212( 0)1 58(Index +)1 464 20 1366 2362 t
10 S f
(______________________________________________________)1694 2382 w
10 PA f
(0)1492 2502 w
10 CW f
( a r)2 540( \\0 V)2 540( a m e .)4 1080(\\0 n)1 360 4 1769 2502 t
10 S f
(______________________________________________________)1694 2522 w
10 PA f
(10)1442 2642 w
10 CW f
( b l e)3 810( \\0 a)2 540(i a b l e)4 1140 3 1799 2642 t
10 S f
(______________________________________________________)1694 2662 w
10 PA f
(20)1442 2782 w
10 CW f
( \\0)1 300( x)1 270( x)1 240(\\0 \\0)1 390 4 1769 2782 t
10 S f
(______________________________________________________ \347)1 0 1 1694 2802 t
(\347)1694 2782 w
(\347)1694 2682 w
(\347)1694 2582 w
(\347)1694 2482 w
(\347)1964 2802 w
(\347)1964 2782 w
(\347)1964 2682 w
(\347)1964 2582 w
(\347)1964 2482 w
(\347)2234 2802 w
(\347)2234 2782 w
(\347)2234 2682 w
(\347)2234 2582 w
(\347)2234 2482 w
(\347)2504 2802 w
(\347)2504 2782 w
(\347)2504 2682 w
(\347)2504 2582 w
(\347)2504 2482 w
(\347)2774 2802 w
(\347)2774 2782 w
(\347)2774 2682 w
(\347)2774 2582 w
(\347)2774 2482 w
(\347)3044 2802 w
(\347)3044 2782 w
(\347)3044 2682 w
(\347)3044 2582 w
(\347)3044 2482 w
(\347)3314 2802 w
(\347)3314 2782 w
(\347)3314 2682 w
(\347)3314 2582 w
(\347)3314 2482 w
(\347)3584 2802 w
(\347)3584 2782 w
(\347)3584 2682 w
(\347)3584 2582 w
(\347)3584 2482 w
(\347)3854 2802 w
(\347)3854 2782 w
(\347)3854 2682 w
(\347)3854 2582 w
(\347)3854 2482 w
(\347)4124 2802 w
(\347)4124 2782 w
(\347)4124 2682 w
(\347)4124 2582 w
(\347)4124 2482 w
(\347)4394 2802 w
(\347)4394 2782 w
(\347)4394 2682 w
(\347)4394 2582 w
(\347)4394 2482 w
8 HB f
5220 3022 540 3022 Dl
9 HB f
( Table Indexes)2 620( String)1 310(Figure 1-15:)1 510 3 540 3122 t
10 PA f
(Index String)1 777 1 2438 3314 t
10 S f
(_ _________________)1 883 1 2438 3334 t
10 PA f
(0)2564 3454 w
10 PI f
(none)2841 3454 w
10 PA f
(1)2564 3574 w
10 CW f
(name.)2841 3574 w
10 PA f
(7)2564 3694 w
10 CW f
(Variable)2841 3694 w
10 PA f
(11)2514 3814 w
10 CW f
(able)2841 3814 w
10 PA f
(16)2514 3934 w
10 CW f
(able)2841 3934 w
10 PA f
(24)2514 4054 w
10 PI f
(null string)1 438 1 2841 4054 t
10 S f
( \347)1 -555(_ _________________)1 883 2 2438 4074 t
(\347)2766 4034 w
(\347)2766 3934 w
(\347)2766 3834 w
(\347)2766 3734 w
(\347)2766 3634 w
(\347)2766 3534 w
(\347)2766 3434 w
8 PA f
5220 4266 540 4266 Dl
10 PA f
( string may appear)3 835( A)1 128(As the example shows, a string table index may refer to any byte in the section.)15 3492 3 540 4446 t
(more than once; references to substrings may exist; and a single string may be referenced multiple times.)16 4622 1 540 4566 t
(Unreferenced strings also are allowed.)4 1698 1 540 4686 t
9 R f
(1-16)540 7324 w
9 PB f
( Interface Standards \(TIS\))3 1059( Tool)1 535(Portable Formats Speci\256cation, Version 1.1)4 1758 3 1868 7324 t
cleartomark
showpage
restore
%%EndPage: 16 22
%%Page: 17 23
save
mark
23 pagesetup
16 HB f
5458 516 658 516 Dl
(Symbol Table)1 1046 1 658 682 t
10 PA f
(An object \256le's symbol table holds information needed to locate and relocate a program's symbolic)14 4359 1 658 1042 t
( 0 both designates)3 793( Index)1 303( symbol table index is a subscript into this array.)9 2137( A)1 128(de\256nitions and references.)2 1167 5 658 1162 t
( contents of the initial entry are)6 1378( The)1 217(the \256rst entry in the table and serves as the unde\256ned symbol index.)12 3020 3 658 1282 t
(speci\256ed later in this section.)4 1276 1 658 1402 t
(Name Value)1 814 1 2658 1582 t
10 S f
(___________________)2523 1602 w
10 CW f
(STN_UNDEF 0)1 849 1 2523 1722 t
10 S f
(___________________ \347)1 615 1 2523 1778 t
(\347)3138 1702 w
10 PA f
(A symbol table entry has the following format.)7 2068 1 658 2018 t
8 HB f
5338 2178 658 2178 Dl
9 HB f
( Table Entry)2 515( Symbol)1 375(Figure 1-16:)1 510 3 658 2278 t
 /oldm /m load def /m {} def
 gsave 766 -2574 moveto
 766 -3554 946 -3554 180  arcto 4 {pop} repeat
 5266 -3554 5266 -3374 180  arcto 4 {pop} repeat
 5266 -2394 5086 -2394 180  arcto 4 {pop} repeat
 766 -2394 766 -2574 180  arcto 4 {pop} repeat
 0.999 setgray fill grestore 
 /m /oldm load def
8 CW f
766 3374 766 2574 Dl
766 3374 180 0 0 180 Da
5086 3554 946 3554 Dl
5086 3554 0 -180 180 0 Da
5266 2574 5266 3374 Dl
5266 2574 -180 0 0 -180 Da
946 2394 5086 2394 Dl
946 2394 0 180 -180 0 Da
( {)1 88( t r u c t)5 220( s)1 88(t y p e d e f)6 312 4 908 2674 t
( t _ n a m e ;)7 308( s)1 324(E l f 3 2 _ W o r d)9 444 3 1268 2774 t
( t _ v a l u e ;)8 352( s)1 324(E l f 3 2 _ A d d r)9 444 3 1268 2874 t
( t _ s i z e ;)7 308( s)1 324(E l f 3 2 _ W o r d)9 444 3 1268 2974 t
( t _ i n f o ;)7 308( s)1 192( h a r)3 132( c)1 88(u n s i g n e d)7 356 5 1268 3074 t
( t _ o t h e r ;)8 352( s)1 192( h a r)3 132( c)1 88(u n s i g n e d)7 356 5 1268 3174 t
( t _ s h n d x ;)8 352( s)1 324(E l f 3 2 _ H a l f)9 444 3 1268 3274 t
( l f 3 2 _ S y m ;)9 396(} E)1 136 2 908 3374 t
5338 3682 658 3682 Dl
10 CW f
(st_name)658 3922 w
10 PA f
(This member holds an index into the object \256le's symbol string table, which holds the)14 3767 1 1408 3922 t
( the value is non-zero, it represents a)7 1621( If)1 117(character representations of the symbol names.)5 2079 3 1408 4042 t
( the symbol table entry has no)6 1327( Otherwise,)1 535(string table index that gives the symbol name.)7 2034 3 1408 4162 t
(name.)1408 4282 w
 /oldm /m load def /m {} def
 gsave newpath 658 -4502 moveto
 928 -4502 lineto
 928 -4802 lineto
 658 -4802 lineto
 closepath 0.999 setgray fill grestore
 /m /oldm load def
7 HB f
928 4502 658 4502 Dl
928 4802 928 4502 Dl
658 4802 928 4802 Dl
658 4502 658 4802 Dl
799 4922 799 4802 Dl
(NOTE)700 4670 w
9 H f
(External C symbols have the same names in C and object \256les' symbol tables.)13 3115 1 1018 4562 t
10 CW f
(st_value)658 5122 w
10 PA f
( on the context, this)4 862( Depending)1 545(This member gives the value of the associated symbol.)8 2401 3 1408 5122 t
(may be an absolute value, an address, etc.; details appear below.)10 2842 1 1408 5242 t
10 CW f
(st_size)658 5422 w
10 PA f
( example, a data object's size is the number of)9 2013( For)1 201(Many symbols have associated sizes.)4 1628 3 1408 5422 t
( member holds 0 if the symbol has no size or an)11 2098( This)1 240(bytes contained in the object.)4 1279 3 1408 5542 t
(unknown size.)1 647 1 1408 5662 t
10 CW f
(st_info)658 5842 w
10 PA f
( list of the values and)5 939( A)1 128(This member speci\256es the symbol's type and binding attributes.)8 2825 3 1408 5842 t
( following code shows how to manipulate the values.)8 2353( The)1 217(meanings appears below.)2 1124 3 1408 5962 t
 /oldm /m load def /m {} def
 gsave 766 -6318 moveto
 766 -6798 946 -6798 180  arcto 4 {pop} repeat
 5266 -6798 5266 -6618 180  arcto 4 {pop} repeat
 5266 -6138 5086 -6138 180  arcto 4 {pop} repeat
 766 -6138 766 -6318 180  arcto 4 {pop} repeat
 0.999 setgray fill grestore 
 /m /oldm load def
8 CW f
766 6618 766 6318 Dl
766 6618 180 0 0 180 Da
5086 6798 946 6798 Dl
5086 6798 0 -180 180 0 Da
5266 6318 5266 6618 Dl
5266 6318 -180 0 0 -180 Da
946 6138 5086 6138 Dl
946 6138 0 180 -180 0 Da
( \( i \) > > 4 \))7 308( \()1 176( L F 3 2 _ S T _ B I N D \( i \))15 660( E)1 88(# d e f i n e)6 312 5 908 6418 t
( \( i \) & 0 x f \))8 352( \()1 176( L F 3 2 _ S T _ T Y P E \( i \))15 660( E)1 88(# d e f i n e)6 312 5 908 6518 t
( \( \( b \) < < 4 \) + \( \( t \) & 0 x f \) \))19 836( \()1 88( L F 3 2 _ S T _ I N F O \( b , t \))17 748( E)1 88(# d e f i n e)6 312 5 908 6618 t
9 PB f
( Formats Specification, Version 1.1)4 1423( Portable)1 851(Tool Interface Standards \(TIS\))3 1249 3 658 7324 t
9 R f
(1-17)5173 7324 w
cleartomark
showpage
restore
%%EndPage: 17 23
%%Page: 18 24
save
mark
24 pagesetup
9 HB f
(ELF: Executable and Linkable Format)4 1605 1 540 540 t
5400 540 2217 540 Dl
10 CW f
(st_other)540 1080 w
10 PA f
(This member currently holds 0 and has no de\256ned meaning.)9 2666 1 1290 1080 t
10 CW f
(st_shndx)540 1260 w
10 PA f
(Every symbol table entry is ``de\256ned'' in relation to some section; this member holds the)14 3903 1 1290 1260 t
( Figure 1-7 and the related text describe, some)8 2030( As)1 170(relevant section header table index.)4 1564 3 1290 1380 t
(section indexes indicate special meanings.)4 1855 1 1290 1500 t
(A symbol's binding determines the linkage visibility and behavior.)8 2951 1 540 1740 t
8 HB f
5220 1900 540 1900 Dl
9 HB f
( Binding,)1 385( Symbol)1 375(Figure 1-17:)1 510 3 540 2000 t
9 CW f
(ELF32_ST_BIND)1835 2000 w
10 PA f
(Name Value)1 844 1 2540 2192 t
10 S f
(_ ____________________)1 1009 1 2375 2212 t
10 CW f
(STB_LOCAL 0)1 939 1 2375 2332 t
(STB_GLOBAL 1)1 939 1 2375 2452 t
(STB_WEAK 2)1 939 1 2375 2572 t
(STB_LOPROC 13)1 939 1 2375 2692 t
(STB_HIPROC 15)1 939 1 2375 2812 t
10 S f
( \347)1 -334(_ ____________________)1 1009 2 2375 2868 t
(\347)3050 2812 w
(\347)3050 2712 w
(\347)3050 2612 w
(\347)3050 2512 w
(\347)3050 2412 w
(\347)3050 2312 w
8 PA f
5220 3060 540 3060 Dl
10 CW f
(STB_LOCAL)540 3300 w
10 PA f
( Local)1 289(Local symbols are not visible outside the object \256le containing their de\256nition.)11 3451 2 1290 3300 t
(symbols of the same name may exist in multiple \256les without interfering with each)13 3658 1 1290 3420 t
(other.)1290 3540 w
10 CW f
(STB_GLOBAL)540 3720 w
10 PA f
( \256le's de\256nition of a)4 878( One)1 235(Global symbols are visible to all object \256les being combined.)9 2655 3 1290 3720 t
(global symbol will satisfy another \256le's unde\256ned reference to the same global symbol.)12 3845 1 1290 3840 t
10 CW f
(STB_WEAK)540 4020 w
10 PA f
(Weak symbols resemble global symbols, but their de\256nitions have lower precedence.)10 3756 1 1290 4020 t
10 CW f
(STB_LOPROC)540 4200 w
10 PA f
(through)1165 4200 w
10 CW f
(STB_HIPROC)1550 4200 w
10 PA f
(Values in this inclusive range are reserved for processor-speci\256c semantics.)9 3317 1 1290 4320 t
(Global and weak symbols differ in two major ways.)8 2281 1 540 4560 t
10 S f
()698 4740 w
698 4740 m
50 build_bx
748 4740 m
10 PA f
(When the link editor combines several relocatable object \256les, it does not allow multiple de\256nitions)14 4377 1 814 4740 t
(of)814 4860 w
10 CW f
(STB_GLOBAL)927 4860 w
10 PA f
( the other hand, if a de\256ned global symbol)8 1873( On)1 187(symbols with the same name.)4 1306 3 1560 4860 t
( link edi-)2 393( The)1 217(exists, the appearance of a weak symbol with the same name will not cause an error.)15 3723 3 814 4980 t
( if a common symbol exists)5 1196( Similarly,)1 478(tor honors the global de\256nition and ignores the weak ones.)9 2607 3 814 5100 t
(\(i.e., a symbol whose st)4 1021 1 814 5220 t
10 S f
(_)1835 5220 w
10 PA f
(shndx \256eld holds)2 765 1 1885 5220 t
10 CW f
(SHN_COMMON)2675 5220 w
10 PA f
(\), the appearance of a weak symbol with)7 1783 1 3275 5220 t
( link editor honors the common de\256nition and ignores)8 2402( The)1 217(the same name will not cause an error.)7 1702 3 814 5340 t
(the weak ones.)2 654 1 814 5460 t
10 S f
()698 5640 w
698 5640 m
50 build_bx
748 5640 m
10 PA f
(When the link editor searches archive libraries, it extracts archive members that contain de\256nitions)13 4363 1 814 5640 t
( member's de\256nition may be either a global or a weak symbol.)11 2753( The)1 217(of unde\256ned global symbols.)3 1284 3 814 5760 t
(The link editor does)3 886 1 814 5880 t
10 PI f
(not)1725 5880 w
10 PA f
( Unresolved)1 565(extract archive members to resolve unde\256ned weak symbols.)7 2699 2 1883 5880 t
(weak symbols have a zero value.)5 1452 1 814 6000 t
(In each symbol table, all symbols with)6 1685 1 540 6240 t
10 CW f
(STB_LOCAL)2250 6240 w
10 PA f
( As)1 170(binding precede the weak and global symbols.)6 2056 2 2823 6240 t
(``Sections'' above describes, a symbol table section's)6 2291 1 540 6360 t
10 CW f
(sh_info)2856 6360 w
10 PA f
(section header member holds the symbol)5 1815 1 3309 6360 t
(table index for the \256rst non-local symbol.)6 1817 1 540 6480 t
9 R f
(1-18)540 7324 w
9 PB f
( Interface Standards \(TIS\))3 1059( Tool)1 535(Portable Formats Speci\256cation, Version 1.1)4 1758 3 1868 7324 t
cleartomark
showpage
restore
%%EndPage: 18 24
%%Page: 19 25
save
mark
25 pagesetup
9 HB f
3841 540 658 540 Dl
(ELF: Executable and Linkable Format)4 1605 1 3913 540 t
10 PA f
(A symbol's type provides a general classi\256cation for the associated entity.)10 3259 1 658 1020 t
8 HB f
5338 1180 658 1180 Dl
9 HB f
( Types,)1 310( Symbol)1 375(Figure 1-18:)1 510 3 658 1280 t
9 CW f
(ELF32_ST_TYPE)1878 1280 w
10 PA f
(Name Value)1 874 1 2658 1472 t
10 S f
(_ _____________________)1 1069 1 2463 1492 t
10 CW f
(STT_NOTYPE 0)1 999 1 2463 1612 t
(STT_OBJECT 1)1 999 1 2463 1732 t
(STT_FUNC 2)1 999 1 2463 1852 t
(STT_SECTION 3)1 999 1 2463 1972 t
(STT_FILE 4)1 999 1 2463 2092 t
(STT_LOPROC 13)1 999 1 2463 2212 t
(STT_HIPROC 15)1 999 1 2463 2332 t
10 S f
( \347)1 -334(_ _____________________)1 1069 2 2463 2388 t
(\347)3198 2292 w
(\347)3198 2192 w
(\347)3198 2092 w
(\347)3198 1992 w
(\347)3198 1892 w
(\347)3198 1792 w
(\347)3198 1692 w
(\347)3198 1592 w
8 PA f
5338 2580 658 2580 Dl
10 CW f
(STT_NOTYPE)658 2820 w
10 PA f
(The symbol's type is not speci\256ed.)5 1519 1 1458 2820 t
10 CW f
(STT_OBJECT)658 3000 w
10 PA f
(The symbol is associated with a data object, such as a variable, an array, etc.)14 3344 1 1458 3000 t
10 CW f
(STT_FUNC)658 3180 w
10 PA f
(The symbol is associated with a function or other executable code.)10 2919 1 1458 3180 t
10 CW f
(STT_SECTION)658 3360 w
10 PA f
( table entries of this type exist pri-)7 1501( Symbol)1 386(The symbol is associated with a section.)6 1754 3 1458 3360 t
(marily for relocation and normally have)5 1772 1 1458 3480 t
10 CW f
(STB_LOCAL)3255 3480 w
10 PA f
(binding.)3828 3480 w
10 CW f
(STT_FILE)658 3660 w
10 PA f
(Conventionally, the symbol's name gives the name of the source \256le associated with the)13 3877 1 1458 3660 t
( \256le symbol has)3 688( A)1 128(object \256le.)1 446 3 1458 3780 t
10 CW f
(STB_LOCAL)2745 3780 w
10 PA f
(binding, its section index is)4 1203 1 3318 3780 t
10 CW f
(SHN_ABS)4546 3780 w
10 PA f
(, and it)2 306 1 4974 3780 t
(precedes the other)2 814 1 1458 3900 t
10 CW f
(STB_LOCAL)2297 3900 w
10 PA f
(symbols for the \256le, if it is present.)7 1521 1 2870 3900 t
10 CW f
(STT_LOPROC)658 4080 w
10 PA f
(through)1283 4080 w
10 CW f
(STT_HIPROC)1668 4080 w
10 PA f
(Values in this inclusive range are reserved for processor-speci\256c semantics.)9 3317 1 1458 4200 t
(Function symbols \(those with type)4 1529 1 658 4440 t
10 CW f
(STT_FUNC)2212 4440 w
10 PA f
( When)1 314(\) in shared object \256les have special signi\256cance.)7 2090 2 2700 4440 t
(another object \256le references a function from a shared object, the link editor automatically creates a pro-)16 4581 1 658 4560 t
( object symbols with types other than)6 1650( Shared)1 360(cedure linkage table entry for the referenced symbol.)7 2337 3 658 4680 t
10 CW f
(STT_FUNC)658 4800 w
10 PA f
(will not be referenced automatically through the procedure linkage table.)9 3239 1 1171 4800 t
(If a symbol's value refers to a speci\256c location within a section, its section index member,)15 3927 1 658 4980 t
10 CW f
(st_shndx)4610 4980 w
10 PA f
(,)5098 4980 w
( the section moves during relocation, the symbol's value)8 2484( As)1 170(holds an index into the section header table.)7 1944 3 658 5100 t
(changes as well, and references to the symbol continue to ``point'' to the same location in the program.)17 4525 1 658 5220 t
(Some special section index values give other semantics.)7 2445 1 658 5340 t
10 CW f
(SHN_ABS)658 5520 w
10 PA f
(The symbol has an absolute value that will not change because of relocation.)12 3370 1 1408 5520 t
10 CW f
(SHN_COMMON)658 5700 w
10 PA f
( symbol's value)2 688( The)1 217(The symbol labels a common block that has not yet been allocated.)11 2937 3 1408 5700 t
(gives alignment constraints, similar to a section's)6 2163 1 1408 5820 t
10 CW f
(sh_addralign)3596 5820 w
10 PA f
( is, the)2 285(member. That)1 644 2 4349 5820 t
(link editor will allocate the storage for the symbol at an address that is a multiple of)16 3695 1 1408 5940 t
10 CW f
(st_value)1408 6060 w
10 PA f
( symbol's size tells how many bytes are required.)8 2172(. The)1 242 2 1896 6060 t
10 CW f
(SHN_UNDEF)658 6240 w
10 PA f
( the link editor combines)4 1096( When)1 314(This section table index means the symbol is unde\256ned.)8 2463 3 1408 6240 t
(this object \256le with another that de\256nes the indicated symbol, this \256le's references to the)14 3893 1 1408 6360 t
(symbol will be linked to the actual de\256nition.)7 2004 1 1408 6480 t
9 PB f
( Formats Speci\256cation, Version 1.1)4 1413( Portable)1 851(Tool Interface Standards \(TIS\))3 1249 3 658 7324 t
9 R f
(1-19)5173 7324 w
cleartomark
showpage
restore
%%EndPage: 19 25
%%Page: 20 26
save
mark
26 pagesetup
9 HB f
(ELF: Executable and Linkable Format)4 1605 1 540 540 t
5400 540 2217 540 Dl
10 PA f
(As mentioned above, the symbol table entry for index 0 \()10 2510 1 540 1020 t
10 CW f
(STN_UNDEF)3050 1020 w
10 PA f
(\) is reserved; it holds the following.)6 1560 1 3590 1020 t
8 HB f
5220 1180 540 1180 Dl
9 HB f
( Table Entry: Index 0)4 880( Symbol)1 375(Figure 1-19:)1 510 3 540 1280 t
10 PA f
( Note)1 894(Name Value)1 924 2 1831 1472 t
10 S f
(_ ______________________________________________)1 2308 1 1726 1492 t
10 CW f
(st_name 0)1 930 1 1726 1612 t
10 PA f
(No name)1 407 1 3046 1612 t
10 CW f
(st_value 0)1 930 1 1726 1732 t
10 PA f
(Zero value)1 478 1 3046 1732 t
10 CW f
(st_size 0)1 930 1 1726 1852 t
10 PA f
(No size)1 332 1 3046 1852 t
10 CW f
(st_info 0)1 930 1 1726 1972 t
10 PA f
(No type, local binding)3 988 1 3046 1972 t
10 CW f
(st_other 0)1 930 1 1726 2092 t
(st_shndx SHN_UNDEF)1 1170 1 1726 2212 t
10 PA f
(No section)1 472 1 3046 2212 t
10 S f
( \347)1 -1753(_ ______________________________________________)1 2308 2 1726 2268 t
(\347)2281 2192 w
(\347)2281 2092 w
(\347)2281 1992 w
(\347)2281 1892 w
(\347)2281 1792 w
(\347)2281 1692 w
(\347)2281 1592 w
(\347)2971 2268 w
(\347)2971 2192 w
(\347)2971 2092 w
(\347)2971 1992 w
(\347)2971 1892 w
(\347)2971 1792 w
(\347)2971 1692 w
(\347)2971 1592 w
8 PA f
5220 2460 540 2460 Dl
14 HB f
(Symbol Values)1 997 1 540 2900 t
10 PA f
(Symbol table entries for different object \256le types have slightly different interpretations for the)13 4170 1 540 3140 t
10 CW f
(st_value)540 3260 w
10 PA f
(member.)1053 3260 w
10 S f
()698 3440 w
698 3440 m
50 build_bx
748 3440 m
10 PA f
(In relocatable \256les,)2 828 1 814 3440 t
10 CW f
(st_value)1667 3440 w
10 PA f
(holds alignment constraints for a symbol whose section index is)9 2820 1 2180 3440 t
10 CW f
(SHN_COMMON)814 3560 w
10 PA f
(.)1422 3560 w
10 S f
()698 3740 w
698 3740 m
50 build_bx
748 3740 m
10 PA f
(In relocatable \256les,)2 828 1 814 3740 t
10 CW f
(st_value)1667 3740 w
10 PA f
( is,)1 121( That)1 252(holds a section offset for a de\256ned symbol.)7 1888 3 2180 3740 t
10 CW f
(st_value)4466 3740 w
10 PA f
(is an)1 204 1 4979 3740 t
(offset from the beginning of the section that)7 1931 1 814 3860 t
10 CW f
(st_shndx)2770 3860 w
10 PA f
(identi\256es.)3283 3860 w
10 S f
()698 4040 w
698 4040 m
50 build_bx
748 4040 m
10 PA f
(In executable and shared object \256les,)5 1615 1 814 4040 t
10 CW f
(st_value)2454 4040 w
10 PA f
( make these \256les' sym-)4 998( To)1 166(holds a virtual address.)3 1036 3 2967 4040 t
(bols more useful for the dynamic linker, the section offset \(\256le interpretation\) gives way to a virtual)16 4387 1 814 4160 t
(address \(memory interpretation\) for which the section number is irrelevant.)9 3348 1 814 4280 t
(Although the symbol table values have similar meanings for different object \256les, the data allow ef\256cient)15 4621 1 540 4580 t
(access by the appropriate programs.)4 1601 1 540 4700 t
9 R f
(1-20)540 7324 w
9 PB f
( Interface Standards \(TIS\))3 1059( Tool)1 535(Portable Formats Speci\256cation, Version 1.1)4 1758 3 1868 7324 t
cleartomark
showpage
restore
%%EndPage: 20 26
%%Page: 21 27
save
mark
27 pagesetup
16 HB f
5458 516 658 516 Dl
(Relocation)658 682 w
10 PA f
( example, when)2 697( For)1 201(Relocation is the process of connecting symbolic references with symbolic de\256nitions.)10 3777 3 658 1042 t
(a program calls a function, the associated call instruction must transfer control to the proper destination)15 4586 1 658 1162 t
( other words, relocatable \256les must have information that describes how to)11 3306( In)1 142(address at execution.)2 929 3 658 1282 t
(modify their section contents, thus allowing executable and shared object \256les to hold the right informa-)15 4597 1 658 1402 t
(tion for a process's program image.)5 1564 1 658 1522 t
10 PI f
(Relocation entries)1 722 1 2272 1522 t
10 PA f
(are these data.)2 636 1 3019 1522 t
8 HB f
5338 1682 658 1682 Dl
9 HB f
( Entries)1 330( Relocation)1 510(Figure 1-20:)1 510 3 658 1782 t
 /oldm /m load def /m {} def
 gsave 766 -2078 moveto
 766 -3258 946 -3258 180  arcto 4 {pop} repeat
 5266 -3258 5266 -3078 180  arcto 4 {pop} repeat
 5266 -1898 5086 -1898 180  arcto 4 {pop} repeat
 766 -1898 766 -2078 180  arcto 4 {pop} repeat
 0.999 setgray fill grestore 
 /m /oldm load def
8 CW f
766 3078 766 2078 Dl
766 3078 180 0 0 180 Da
5086 3258 946 3258 Dl
5086 3258 0 -180 180 0 Da
5266 2078 5266 3078 Dl
5266 2078 -180 0 0 -180 Da
946 1898 5086 1898 Dl
946 1898 0 180 -180 0 Da
( {)1 88( t r u c t)5 220( s)1 88(t y p e d e f)6 312 4 908 2178 t
( _ o f f s e t ;)8 352( r)1 324(E l f 3 2 _ A d d r)9 444 3 1268 2278 t
( _ i n f o ;)6 264( r)1 324(E l f 3 2 _ W o r d)9 444 3 1268 2378 t
( l f 3 2 _ R e l ;)9 396(} E)1 136 2 908 2478 t
( {)1 88( t r u c t)5 220( s)1 88(t y p e d e f)6 312 4 908 2678 t
( _ o f f s e t ;)8 352( r)1 324(E l f 3 2 _ A d d r)9 444 3 1268 2778 t
( _ i n f o ;)6 264( r)1 324(E l f 3 2 _ W o r d)9 444 3 1268 2878 t
( _ a d d e n d ;)8 352( r)1 280(E l f 3 2 _ S w o r d)10 488 3 1268 2978 t
( l f 3 2 _ R e l a ;)10 440(} E)1 136 2 908 3078 t
5338 3386 658 3386 Dl
10 CW f
(r_offset)658 3626 w
10 PA f
( a relocatable)2 581( For)1 201(This member gives the location at which to apply the relocation action.)11 3127 3 1258 3626 t
(\256le, the value is the byte offset from the beginning of the section to the storage unit affected)17 4035 1 1258 3746 t
( an executable \256le or a shared object, the value is the virtual address of)14 3111( For)1 201(by the relocation.)2 766 3 1258 3866 t
(the storage unit affected by the relocation.)6 1859 1 1258 3986 t
10 CW f
(r_info)658 4166 w
10 PA f
(This member gives both the symbol table index with respect to which the relocation must be)15 4075 1 1258 4166 t
( example, a call instruction's relocation entry)6 1979( For)1 201(made, and the type of relocation to apply.)7 1849 3 1258 4286 t
( the index is)3 533( If)1 117(would hold the symbol table index of the function being called.)10 2797 3 1258 4406 t
10 CW f
(STN_UNDEF)4730 4406 w
10 PA f
(,)5278 4406 w
( types)1 264( Relocation)1 518(the unde\256ned symbol index, the relocation uses 0 as the ``symbol value.'')11 3225 3 1258 4526 t
( the text refers to a relocation entry's relocation type or symbol)11 2773( When)1 314(are processor-speci\256c.)1 975 3 1258 4646 t
(table index, it means the result of applying)7 1888 1 1258 4766 t
10 CW f
(ELF32_R_TYPE)3171 4766 w
10 PA f
(or)3924 4766 w
10 CW f
(ELF32_R_SYM)4044 4766 w
10 PA f
(, respectively,)1 608 1 4712 4766 t
(to the entry's)2 582 1 1258 4886 t
10 CW f
(r_info)1865 4886 w
10 PA f
(member.)2258 4886 w
 /oldm /m load def /m {} def
 gsave 766 -5242 moveto
 766 -5722 946 -5722 180  arcto 4 {pop} repeat
 5266 -5722 5266 -5542 180  arcto 4 {pop} repeat
 5266 -5062 5086 -5062 180  arcto 4 {pop} repeat
 766 -5062 766 -5242 180  arcto 4 {pop} repeat
 0.999 setgray fill grestore 
 /m /oldm load def
8 CW f
766 5542 766 5242 Dl
766 5542 180 0 0 180 Da
5086 5722 946 5722 Dl
5086 5722 0 -180 180 0 Da
5266 5242 5266 5542 Dl
5266 5242 -180 0 0 -180 Da
946 5062 5086 5062 Dl
946 5062 0 180 -180 0 Da
( \( i \) > > 8 \))7 308( \()1 220( L F 3 2 _ R _ S Y M \( i \))13 572( E)1 88(# d e f i n e)6 312 5 908 5342 t
( h a r \) \( i \) \))8 352( c)1 88( \( u n s i g n e d)9 396( \()1 176( L F 3 2 _ R _ T Y P E \( i \))14 616( E)1 88(# d e f i n e)6 312 7 908 5442 t
( h a r \) \( t \) \))8 352( c)1 88( \( \( s \) < < 8 \) + \( u n s i g n e d)18 792( \()1 88( L F 3 2 _ R _ I N F O \( s , t \))16 704( E)1 88(# d e f i n e)6 312 7 908 5542 t
10 CW f
(r_addend)658 5966 w
10 PA f
(This member speci\256es a constant addend used to compute the value to be stored into the)15 3921 1 1258 5966 t
(relocatable \256eld.)1 730 1 1258 6086 t
(As shown above, only)3 978 1 658 6326 t
10 CW f
(Elf32_Rela)1661 6326 w
10 PA f
( of type)2 335( Entries)1 361(entries contain an explicit addend.)4 1521 3 2294 6326 t
10 CW f
(Elf32_Rel)4536 6326 w
10 PA f
(store)5109 6326 w
( on the processor architecture, one form or)7 1877( Depending)1 545(an implicit addend in the location to be modi\256ed.)8 2186 3 658 6446 t
( an implementation for a particular)5 1552( Consequently,)1 689(the other might be necessary or more convenient.)7 2181 3 658 6566 t
(machine may use one form exclusively or either form depending on context.)11 3371 1 658 6686 t
9 PB f
( Formats Speci\256cation, Version 1.1)4 1413( Portable)1 851(Tool Interface Standards \(TIS\))3 1249 3 658 7324 t
9 R f
(1-21)5173 7324 w
cleartomark
showpage
restore
%%EndPage: 21 27
%%Page: 22 28
save
mark
28 pagesetup
9 HB f
(ELF: Executable and Linkable Format)4 1605 1 540 540 t
5400 540 2217 540 Dl
10 PA f
( section)1 334( The)1 217(A relocation section references two other sections: a symbol table and a section to modify.)14 3961 3 540 1020 t
(header's)540 1140 w
10 CW f
(sh_info)940 1140 w
10 PA f
(and)1393 1140 w
10 CW f
(sh_link)1587 1140 w
10 PA f
(members, described in ``Sections'' above, specify these relationships.)7 3026 1 2040 1140 t
(Relocation entries for different object \256les have slightly different interpretations for the)11 3840 1 540 1260 t
10 CW f
(r_offset)4405 1260 w
10 PA f
(member.)540 1380 w
10 S f
()698 1560 w
698 1560 m
50 build_bx
748 1560 m
10 PA f
(In relocatable \256les,)2 828 1 814 1560 t
10 CW f
(r_offset)1667 1560 w
10 PA f
( is, the relocation section itself describes)6 1758( That)1 252(holds a section offset.)3 948 3 2180 1560 t
(how to modify another section in the \256le; relocation offsets designate a storage unit within the)15 4156 1 814 1680 t
(second section.)1 667 1 814 1800 t
10 S f
()698 1980 w
698 1980 m
50 build_bx
748 1980 m
10 PA f
(In executable and shared object \256les,)5 1615 1 814 1980 t
10 CW f
(r_offset)2454 1980 w
10 PA f
( make these \256les' relo-)4 984( To)1 166(holds a virtual address.)3 1036 3 2967 1980 t
(cation entries more useful for the dynamic linker, the section offset \(\256le interpretation\) gives way to)15 4401 1 814 2100 t
(a virtual address \(memory interpretation\).)4 1871 1 814 2220 t
(Although the interpretation of)3 1343 1 540 2520 t
10 CW f
(r_offset)1908 2520 w
10 PA f
(changes for different object \256les to allow ef\256cient access by the)10 2763 1 2421 2520 t
(relevant programs, the relocation types' meanings stay the same.)8 2867 1 540 2640 t
14 HB f
(Relocation Types)1 1157 1 540 3020 t
10 PA f
(Relocation entries describe how to alter the following instruction and data \256elds \(bit numbers appear in)15 4579 1 540 3260 t
(the lower box corners\).)3 1016 1 540 3380 t
8 HB f
5220 3540 540 3540 Dl
9 HB f
( Fields)1 285( Relocatable)1 555(Figure 1-21:)1 510 3 540 3640 t
10 PA f
1930 3832 1930 4048 Dl
3830 3832 1930 3832 Dl
3830 4048 3830 3832 Dl
1930 4048 3830 4048 Dl
10 PI f
(word32)2728 3960 w
6 PA f
(31 0)1 1880 1 1940 4032 t
8 PA f
5220 4240 540 4240 Dl
10 PI f
(word32)540 4480 w
10 PA f
( values use)2 485( These)1 307(This speci\256es a 32-bit \256eld occupying 4 bytes with arbitrary byte alignment.)11 3346 3 1040 4480 t
(the same byte order as other word values in the 32-bit Intel Architecture.)12 3211 1 1040 4600 t
2404 4870 2404 5086 Dl
2879 4870 2404 4870 Dl
2879 5086 2879 4870 Dl
2404 5086 2879 5086 Dl
10 CW f
(01)2582 4998 w
6 PA f
(3)2414 4926 w
(31)2414 5070 w
10 PA f
2879 4870 2879 5086 Dl
3354 4870 2879 4870 Dl
3354 5086 3354 4870 Dl
2879 5086 3354 5086 Dl
10 CW f
(02)3057 4998 w
6 PA f
(2)2889 4926 w
10 PA f
3354 4870 3354 5086 Dl
3829 4870 3354 4870 Dl
3830 5086 3830 4870 Dl
3355 5086 3830 5086 Dl
10 CW f
(03)3532 4998 w
6 PA f
(1)3364 4926 w
10 PA f
3830 4870 3830 5086 Dl
4305 4870 3830 4870 Dl
4305 5086 4305 4870 Dl
3830 5086 4305 5086 Dl
10 CW f
(04)4007 4998 w
6 PA f
(0)3840 4926 w
(0)4265 5070 w
10 CW f
(0x01020304)1696 4998 w
10 PA f
(Calculations below assume the actions are transforming a relocatable \256le into either an executable or a)15 4515 1 540 5446 t
( the link editor merges one or more relocatable \256les to form the output.)13 3141( Conceptually,)1 668(shared object \256le.)2 770 3 540 5566 t
(It \256rst decides how to combine and locate the input \256les, then updates the symbol values, and \256nally per-)18 4657 1 540 5686 t
( applied to executable or shared object \256les are similar and accomplish)11 3112( Relocations)1 560(forms the relocation.)2 913 3 540 5806 t
( below use the following notation.)5 1507( Descriptions)1 607(the same result.)2 694 3 540 5926 t
10 CW f
(A)540 6106 w
10 PA f
(This means the addend used to compute the value of the relocatable \256eld.)12 3255 1 1040 6106 t
10 CW f
(B)540 6286 w
10 PA f
(This means the base address at which a shared object has been loaded into memory during)15 4008 1 1040 6286 t
( a shared object \256le is built with a 0 base virtual address, but the execu-)15 3133(execution. Generally,)1 961 2 1040 6406 t
(tion address will be different.)4 1300 1 1040 6526 t
9 R f
(1-22)540 7324 w
9 PB f
( Interface Standards \(TIS\))3 1059( Tool)1 535(Portable Formats Speci\256cation, Version 1.1)4 1758 3 1868 7324 t
cleartomark
showpage
restore
%%EndPage: 22 28
%%Page: 23 29
save
mark
29 pagesetup
9 HB f
3841 540 658 540 Dl
(ELF: Executable and Linkable Format)4 1605 1 3913 540 t
10 CW f
(G)658 1020 w
10 PA f
(This means the offset into the global offset table at which the address of the relocation entry's)16 4117 1 1158 1020 t
( ``Global Offset Table'' in Part 2 for more informa-)9 2207( See)1 199(symbol will reside during execution.)4 1619 3 1158 1140 t
(tion.)1158 1260 w
10 CW f
(GOT)658 1440 w
10 PA f
( ``Global Offset Table'' in Part 2 for more)8 1796( See)1 199(This means the address of the global offset table.)8 2144 3 1158 1440 t
(information.)1158 1560 w
10 CW f
(L)658 1740 w
10 PA f
(This means the place \(section offset or address\) of the procedure linkage table entry for a sym-)16 4160 1 1158 1740 t
( The)1 217( procedure linkage table entry redirects a function call to the proper destination.)12 3540(bol. A)1 292 3 1158 1860 t
(link editor builds the initial procedure linkage table, and the dynamic linker modi\256es the)13 3934 1 1158 1980 t
( ``Procedure Linkage Table'' in Part 2 for more information.)9 2626( See)1 199(entries during execution.)2 1104 3 1158 2100 t
10 CW f
(P)658 2280 w
10 PA f
(This means the place \(section offset or address\) of the storage unit being relocated \(computed)14 4121 1 1158 2280 t
(using)1158 2400 w
10 CW f
(r_offset)1428 2400 w
10 PA f
(\).)1916 2400 w
10 CW f
(S)658 2580 w
10 PA f
(This means the value of the symbol whose index resides in the relocation entry.)13 3506 1 1158 2580 t
(A relocation entry's)2 874 1 658 2820 t
10 CW f
(r_offset)1557 2820 w
10 PA f
(value designates the offset or virtual address of the \256rst byte of the)12 2951 1 2070 2820 t
( relocation type speci\256es which bits to change and how to calculate their values.)13 3528( The)1 217(affected storage unit.)2 929 3 658 2940 t
(The SYSTEM V architecture uses only)5 1671 1 658 3060 t
10 CW f
(Elf32_Rel)2354 3060 w
10 PA f
(relocation entries, the \256eld to be relocated holds the)8 2285 1 2927 3060 t
( all cases, the addend and the computed result use the same byte order.)13 3149(addend. In)1 506 2 658 3180 t
8 HB f
5338 3340 658 3340 Dl
9 HB f
( Types)1 285( Relocation)1 510(Figure 1-22:)1 510 3 658 3440 t
10 PA f
( Calculation)1 775( Field)1 414(Name Value)1 964 3 2026 3632 t
10 S f
(_ __________________________________________________)1 2514 1 1741 3652 t
10 CW f
(R_386_NONE 0)1 1179 1 1741 3772 t
10 PA f
(none none)1 674 1 3140 3772 t
10 CW f
(R_386_32 1)1 1179 1 1741 3892 t
10 PI f
(word32)3140 3892 w
10 CW f
(S + A)2 300 1 3595 3892 t
(R_386_PC32 2)1 1179 1 1741 4012 t
10 PI f
(word32)3140 4012 w
10 CW f
(S + A - P)4 540 1 3595 4012 t
(R_386_GOT32 3)1 1179 1 1741 4132 t
10 PI f
(word32)3140 4132 w
10 CW f
(G + A - P)4 540 1 3595 4132 t
(R_386_PLT32 4)1 1179 1 1741 4252 t
10 PI f
(word32)3140 4252 w
10 CW f
(L + A - P)4 540 1 3595 4252 t
(R_386_COPY 5)1 1179 1 1741 4372 t
10 PA f
(none none)1 674 1 3140 4372 t
10 CW f
(R_386_GLOB_DAT 6)1 1179 1 1741 4492 t
10 PI f
(word32)3140 4492 w
10 CW f
(S)3595 4492 w
(R_386_JMP_SLOT 7)1 1179 1 1741 4612 t
10 PI f
(word32)3140 4612 w
10 CW f
(S)3595 4612 w
(R_386_RELATIVE 8)1 1179 1 1741 4732 t
10 PI f
(word32)3140 4732 w
10 CW f
(B + A)2 300 1 3595 4732 t
(R_386_GOTOFF 9)1 1179 1 1741 4852 t
10 PI f
(word32)3140 4852 w
10 CW f
(S + A - GOT)4 660 1 3595 4852 t
(R_386_GOTPC 10)1 1179 1 1741 4972 t
10 PI f
(word32)3140 4972 w
10 CW f
(GOT + A - P)4 660 1 3595 4972 t
10 S f
( \347)1 -1599(_ __________________________________________________)1 2514 2 1741 5028 t
(\347)2656 4952 w
(\347)2656 4852 w
(\347)2656 4752 w
(\347)2656 4652 w
(\347)2656 4552 w
(\347)2656 4452 w
(\347)2656 4352 w
(\347)2656 4252 w
(\347)2656 4152 w
(\347)2656 4052 w
(\347)2656 3952 w
(\347)2656 3852 w
(\347)2656 3752 w
(\347)3065 5028 w
(\347)3065 4952 w
(\347)3065 4852 w
(\347)3065 4752 w
(\347)3065 4652 w
(\347)3065 4552 w
(\347)3065 4452 w
(\347)3065 4352 w
(\347)3065 4252 w
(\347)3065 4152 w
(\347)3065 4052 w
(\347)3065 3952 w
(\347)3065 3852 w
(\347)3065 3752 w
(\347)3520 5028 w
(\347)3520 4952 w
(\347)3520 4852 w
(\347)3520 4752 w
(\347)3520 4652 w
(\347)3520 4552 w
(\347)3520 4452 w
(\347)3520 4352 w
(\347)3520 4252 w
(\347)3520 4152 w
(\347)3520 4052 w
(\347)3520 3952 w
(\347)3520 3852 w
(\347)3520 3752 w
8 PA f
5338 5220 658 5220 Dl
10 PA f
(Some relocation types have semantics beyond simple calculation.)7 2880 1 658 5520 t
10 CW f
(R_386_GOT32)658 5700 w
10 PA f
(This relocation type computes the distance from the base of the global offset)12 3357 1 1758 5700 t
( additionally instructs the link)4 1332( It)1 117(table to the symbol's global offset table entry.)7 2005 3 1758 5820 t
(editor to build a global offset table.)6 1546 1 1758 5940 t
10 CW f
(R_386_PLT32)658 6120 w
10 PA f
(This relocation type computes the address of the symbol's procedure linkage)10 3395 1 1758 6120 t
(table entry and additionally instructs the link editor to build a procedure linkage)12 3571 1 1758 6240 t
(table.)1758 6360 w
10 CW f
(R_386_COPY)658 6540 w
10 PA f
( offset)1 269( Its)1 159(The link editor creates this relocation type for dynamic linking.)9 2789 3 1758 6540 t
( symbol table index)3 863( The)1 217(member refers to a location in a writable segment.)8 2211 3 1758 6660 t
(speci\256es a symbol that should exist both in the current object \256le and in a shared)15 3558 1 1758 6780 t
( execution, the dynamic linker copies data associated with the)9 2730(object. During)1 653 2 1758 6900 t
(shared object's symbol to the location speci\256ed by the offset.)9 2669 1 1758 7020 t
9 PB f
( Formats Speci\256cation, Version 1.1)4 1413( Portable)1 851(Tool Interface Standards \(TIS\))3 1249 3 658 7324 t
9 R f
(1-23)5173 7324 w
cleartomark
showpage
restore
%%EndPage: 23 29
%%Page: 24 30
save
mark
30 pagesetup
9 HB f
(ELF: Executable and Linkable Format)4 1605 1 540 540 t
5400 540 2217 540 Dl
10 CW f
(R_386_GLOB_DAT)540 1020 w
10 PA f
(This relocation type is used to set a global offset table entry to the address of the)16 3537 1 1640 1020 t
( special relocation type allows one to determine the)8 2269( The)1 217(speci\256ed symbol.)1 768 3 1640 1140 t
(correspondence between symbols and global offset table entries.)7 2841 1 1640 1260 t
10 CW f
(R_3862_JMP_SLOT)540 1440 w
10 PA f
( offset)1 269( Its)1 159(The link editor creates this relocation type for dynamic linking.)9 2789 3 1640 1440 t
( dynamic)1 411( The)1 217(member gives the location of a procedure linkage table entry.)9 2710 3 1640 1560 t
(linker modi\256es the procedure linkage table entry to transfer control to the desig-)12 3557 1 1640 1680 t
(nated symbol's address [see ``Procedure Linkage Table'' in Part 2].)9 2932 1 1640 1800 t
10 CW f
(R_386_RELATIVE)540 1980 w
10 PA f
( offset)1 269( Its)1 159(The link editor creates this relocation type for dynamic linking.)9 2789 3 1640 1980 t
(member gives a location within a shared object that contains a value represent-)12 3484 1 1640 2100 t
( dynamic linker computes the corresponding virtual)6 2308( The)1 217(ing a relative address.)3 970 3 1640 2220 t
(address by adding the virtual address at which the shared object was loaded to)13 3493 1 1640 2340 t
( entries for this type must specify 0 for the sym-)10 2106( Relocation)1 518(the relative address.)2 891 3 1640 2460 t
(bol table index.)2 677 1 1640 2580 t
10 CW f
(R_386_GOTOFF)540 2760 w
10 PA f
(This relocation type computes the difference between a symbol's value and the)11 3483 1 1640 2760 t
( additionally instructs the link editor to build)7 1995( It)1 117(address of the global offset table.)5 1454 3 1640 2880 t
(the global offset table.)3 972 1 1640 3000 t
10 CW f
(R_386_GOTPC)540 3180 w
10 PA f
(This relocation type resembles)3 1343 1 1640 3180 t
10 CW f
(R_386_PC32)3008 3180 w
10 PA f
(, except it uses the address of the)7 1449 1 3616 3180 t
( symbol referenced in this relocation)5 1608( The)1 217(global offset table in its calculation.)5 1555 3 1640 3300 t
(normally is)1 501 1 1640 3420 t
10 CW f
(_GLOBAL_OFFSET_TABLE_)2166 3420 w
10 PA f
(, which additionally instructs the link)5 1654 1 3434 3420 t
(editor to build the global offset table.)6 1635 1 1640 3540 t
9 R f
(1-24)540 7324 w
9 PB f
( Interface Standards \(TIS\))3 1059( Tool)1 535(Portable Formats Speci\256cation, Version 1.1)4 1758 3 1868 7324 t
cleartomark
showpage
restore
%%EndPage: 24 30
%%Page: 1 31
save
mark
31 pagesetup
16 HB f
5458 516 658 516 Dl
36 HB f
(2)898 808 w
18 HB f
(PROGRAM LOADING AND DYNAMIC LINKING)4 3940 1 1378 682 t
9 HB f
5458 1626 658 1626 Dl
13 HB f
(Introduction)1378 1740 w
9 H f
(2-1)5170 1740 w
5458 2106 658 2106 Dl
13 HB f
(Program Header)1 1015 1 1378 2220 t
9 H f
(2-2)5170 2220 w
10 H f
(Base Address)1 625 1 1378 2340 t
9 H f
(2-4)5170 2340 w
10 H f
(Note Section)1 575 1 1378 2460 t
9 H f
(2-4)5170 2460 w
5458 2826 658 2826 Dl
13 HB f
(Program Loading)1 1076 1 1378 2940 t
9 H f
(2-7)5170 2940 w
5458 3306 658 3306 Dl
13 HB f
(Dynamic Linking)1 1041 1 1378 3420 t
9 H f
(2-10)5170 3420 w
10 H f
(Program Interpreter)1 875 1 1378 3540 t
9 H f
(2-10)5170 3540 w
10 H f
(Dynamic Linker)1 690 1 1378 3660 t
9 H f
(2-10)5170 3660 w
10 H f
(Dynamic Section)1 752 1 1378 3780 t
9 H f
(2-11)5170 3780 w
10 H f
(Shared Object Dependencies)2 1312 1 1378 3900 t
9 H f
(2-15)5170 3900 w
10 H f
(Global Offset Table)2 865 1 1378 4020 t
9 H f
(2-16)5170 4020 w
10 H f
(Procedure Linkage Table)2 1122 1 1378 4140 t
9 H f
(2-17)5170 4140 w
10 H f
(Hash Table)1 513 1 1378 4260 t
9 H f
(2-19)5170 4260 w
10 H f
(Initialization and Termination Functions)3 1740 1 1378 4380 t
9 H f
(2-20)5170 4380 w
9 PB f
( Formats Speci\256cation, Version 1.1)4 1413( Portable)1 713(Tool Interface Standards \(TIS\))3 1249 3 658 7324 t
9 R f
(i)5313 7324 w
cleartomark
showpage
restore
%%EndPage: 1 31
%%Page: 1 32
save
mark
32 pagesetup
16 HB f
5458 516 658 516 Dl
(Introduction)658 682 w
10 PA f
( infor-)1 273( Some)1 294(Part 2 describes the object \256le information and system actions that create running programs.)13 4071 3 658 1042 t
(mation here applies to all systems; other information is processor-speci\256c.)9 3267 1 658 1162 t
( execute such programs, the system)5 1566( To)1 166(Executable and shared object \256les statically represent programs.)7 2829 3 658 1342 t
( process image has seg-)4 1031( A)1 128(uses the \256les to create dynamic program representations, or process images.)10 3360 3 658 1462 t
( major sections in this part discuss the following.)8 2150( The)1 217(ments that hold its text, data, stack, and so on.)9 2039 3 658 1582 t
10 S f
()816 1762 w
816 1762 m
50 build_bx
866 1762 m
10 PI f
(Program header.)1 666 1 932 1762 t
10 PA f
(This section complements Part 1, describing object \256le structures that relate directly)11 3687 1 1648 1762 t
( primary data structure, a program header table, locates segment images)10 3203( The)1 217(to program execution.)2 979 3 932 1882 t
(within the \256le and contains other information necessary to create the memory image for the pro-)15 4261 1 932 2002 t
(gram.)932 2122 w
10 S f
()816 2302 w
816 2302 m
50 build_bx
866 2302 m
10 PI f
(Program loading.)1 705 1 932 2302 t
10 PA f
(Given an object \256le, the system must load it into memory for the program to run.)15 3576 1 1687 2302 t
10 S f
()816 2482 w
816 2482 m
50 build_bx
866 2482 m
10 PI f
(Dynamic linking.)1 715 1 932 2482 t
10 PA f
(After the system loads the program, it must complete the process image by resolv-)13 3640 1 1697 2482 t
(ing symbolic references among the object \256les that compose the process.)10 3185 1 932 2602 t
 /oldm /m load def /m {} def
 gsave newpath 658 -2822 moveto
 928 -2822 lineto
 928 -3122 lineto
 658 -3122 lineto
 closepath 0.999 setgray fill grestore
 /m /oldm load def
7 HB f
928 2822 658 2822 Dl
928 3122 928 2822 Dl
658 3122 928 3122 Dl
658 2822 658 3122 Dl
799 3242 799 3122 Dl
(NOTE)700 2990 w
9 H f
( such as)2 335( Names)1 335(There are naming conventions for ELF constants that have speci\256ed processor ranges.)11 3465 3 1018 2882 t
(DT)1018 2982 w
9 S f
(_)1138 2982 w
9 H f
(, PT)1 165 1 1183 2982 t
9 S f
(_)1348 2982 w
9 H f
(, for processor-speci\256c extensions, incorporate the name of the processor:)9 2955 1 1393 2982 t
(DT)1018 3082 w
9 S f
(_)1138 3082 w
9 H f
(M32)1183 3082 w
9 S f
(_)1358 3082 w
9 H f
( Pre)1 190(SPECIAL, for example.)2 925 2 1403 3082 t
9 S1 f
(\261)2518 3082 w
9 H f
(existing processor extensions not using this convention will be)8 2470 1 2568 3082 t
(supported.)1018 3182 w
10 PA f
(Pre-existing Extensions)1 1031 1 2482 3442 t
10 S f
(_ ____________________)1 1031 1 2482 3462 t
10 CW f
(D T _ J M P _ R E L)9 555 1 2480 3642 t
9 PB f
( 1.1)1 136( Version)1 371( Formats Speci\256cation,)2 929( Portable)1 851(Tool Interface Standards \(TIS\))3 1249 5 658 7324 t
9 R f
(2-1)5218 7324 w
cleartomark
showpage
restore
%%EndPage: 1 32
%%Page: 2 33
save
mark
33 pagesetup
16 HB f
5340 516 540 516 Dl
(Program Header)1 1249 1 540 682 t
10 PA f
(An executable or shared object \256le's program header table is an array of structures, each describing a seg-)17 4658 1 540 1042 t
( object \256le)2 446( An)1 186(ment or other information the system needs to prepare the program for execution.)12 3631 3 540 1162 t
10 PI f
(segment)4828 1162 w
10 PA f
(contains one or more)3 931 1 540 1282 t
10 PI f
(sections)1496 1282 w
10 PA f
( headers are meaningful)3 1069( Program)1 439(, as ``Segment Contents'' describes below.)5 1840 3 1823 1282 t
( \256le speci\256es its own program header size with the ELF)10 2445( A)1 128(only for executable and shared object \256les.)6 1874 3 540 1402 t
(header's)540 1522 w
10 CW f
(e _ p h e n t s i z e)10 610 1 938 1522 t
10 PA f
(and)1578 1522 w
10 CW f
(e _ p h n u m)6 390 1 1770 1522 t
10 PA f
(members [see ``ELF Header'' in Part 1].)6 1728 1 2190 1522 t
8 HB f
5220 1682 540 1682 Dl
9 HB f
( Header)1 330( Program)1 420(Figure 2-1:)1 460 3 540 1782 t
 /oldm /m load def /m {} def
 gsave 648 -2078 moveto
 648 -3258 828 -3258 180  arcto 4 {pop} repeat
 5148 -3258 5148 -3078 180  arcto 4 {pop} repeat
 5148 -1898 4968 -1898 180  arcto 4 {pop} repeat
 648 -1898 648 -2078 180  arcto 4 {pop} repeat
 0.999 setgray fill grestore 
 /m /oldm load def
8 CW f
648 3078 648 2078 Dl
648 3078 180 0 0 180 Da
4968 3258 828 3258 Dl
4968 3258 0 -180 180 0 Da
5148 2078 5148 3078 Dl
5148 2078 -180 0 0 -180 Da
828 1898 4968 1898 Dl
828 1898 0 180 -180 0 Da
( {)1 88( t r u c t)5 220( s)1 88(t y p e d e f)6 312 4 790 2178 t
( _ t y p e ;)6 264( p)1 324(E l f 3 2 _ W o r d)9 444 3 1150 2278 t
( _ o f f s e t ;)8 352( p)1 368(E l f 3 2 _ O f f)8 400 3 1150 2378 t
( _ v a d d r ;)7 308( p)1 324(E l f 3 2 _ A d d r)9 444 3 1150 2478 t
( _ p a d d r ;)7 308( p)1 324(E l f 3 2 _ A d d r)9 444 3 1150 2578 t
( _ f i l e s z ;)8 352( p)1 324(E l f 3 2 _ W o r d)9 444 3 1150 2678 t
( _ m e m s z ;)7 308( p)1 324(E l f 3 2 _ W o r d)9 444 3 1150 2778 t
( _ f l a g s ;)7 308( p)1 324(E l f 3 2 _ W o r d)9 444 3 1150 2878 t
( _ a l i g n ;)7 308( p)1 324(E l f 3 2 _ W o r d)9 444 3 1150 2978 t
( l f 3 2 _ P h d r ;)10 440(} E)1 136 2 790 3078 t
5220 3386 540 3386 Dl
10 CW f
(p_type)540 3626 w
10 PA f
(This member tells what kind of segment this array element describes or how to interpret)14 3904 1 1260 3626 t
( values and their meanings appear below.)6 1844( Type)1 275(the array element's information.)3 1425 3 1260 3746 t
10 CW f
(p_offset)540 3926 w
10 PA f
(This member gives the offset from the beginning of the \256le at which the \256rst byte of the)17 3852 1 1260 3926 t
(segment resides.)1 733 1 1260 4046 t
10 CW f
(p_vaddr)540 4226 w
10 PA f
(This member gives the virtual address at which the \256rst byte of the segment resides in)15 3802 1 1260 4226 t
(memory.)1260 4346 w
10 CW f
(p_paddr)540 4526 w
10 PA f
(On systems for which physical addressing is relevant, this member is reserved for the)13 3776 1 1260 4526 t
( System V ignores physical addressing for applica-)7 2233( Because)1 403(segment's physical address.)2 1230 3 1260 4646 t
(tion programs, this member has unspeci\256ed contents for executable \256les and shared)11 3710 1 1260 4766 t
(objects.)1260 4886 w
10 CW f
(p_filesz)540 5066 w
10 PA f
(This member gives the number of bytes in the \256le image of the segment; it may be zero.)17 3860 1 1260 5066 t
10 CW f
(p_memsz)540 5246 w
10 PA f
(This member gives the number of bytes in the memory image of the segment; it may be)16 3854 1 1260 5246 t
(zero.)1260 5366 w
10 CW f
(p_flags)540 5546 w
10 PA f
( \257ag values appear below.)4 1155( De\256ned)1 403(This member gives \257ags relevant to the segment.)7 2159 3 1260 5546 t
10 CW f
(p_align)540 5726 w
10 PA f
(As ``Program Loading'' later in this part describes, loadable process segments must have)12 3915 1 1260 5726 t
(congruent values for)2 915 1 1260 5846 t
10 CW f
(p_vaddr)2200 5846 w
10 PA f
(and)2653 5846 w
10 CW f
(p_offset)2847 5846 w
10 PA f
( member)1 392( This)1 240(, modulo the page size.)4 1020 3 3335 5846 t
( 0)1 75( Values)1 351(gives the value to which the segments are aligned in memory and in the \256le.)14 3366 3 1260 5966 t
( Otherwise,)1 535(and 1 mean no alignment is required.)6 1653 2 1260 6086 t
10 CW f
(p_align)3473 6086 w
10 PA f
(should be a positive, integral)4 1278 1 3926 6086 t
(power of 2, and)3 693 1 1260 6206 t
10 CW f
(p_vaddr)1978 6206 w
10 PA f
(should equal)1 573 1 2431 6206 t
10 CW f
(p_offset)3029 6206 w
10 PA f
(, modulo)1 398 1 3517 6206 t
10 CW f
(p_align)3940 6206 w
10 PA f
(.)4368 6206 w
(Some entries describe process segments; others give supplementary information and do not contribute to)13 4644 1 540 6446 t
( De\256ned)1 403( entries may appear in any order, except as explicitly noted below.)11 2931( Segment)1 434(the process image.)2 816 4 540 6566 t
(type values follow; other values are reserved for future use.)9 2633 1 540 6686 t
9 R f
(2-2)540 7324 w
9 PB f
( Interface Standards \(TIS\))3 1059( Tool)1 535(Portable Formats Speci\256cation, Version 1.1)4 1758 3 1868 7324 t
cleartomark
showpage
restore
%%EndPage: 2 33
%%Page: 3 34
save
mark
34 pagesetup
9 HB f
3841 540 658 540 Dl
(ELF: Executable and Linkable Format)4 1605 1 3913 540 t
8 HB f
5338 1000 658 1000 Dl
9 HB f
( Types,)1 310( Segment)1 430(Figure 2-2:)1 460 3 658 1100 t
9 CW f
(p_type)1912 1100 w
10 PA f
(Name Value)1 1014 1 2488 1292 t
10 S f
(___________________________)2323 1312 w
10 CW f
(PT_NULL 0)1 1350 1 2323 1432 t
(PT_LOAD 1)1 1350 1 2323 1552 t
(PT_DYNAMIC 2)1 1350 1 2323 1672 t
(PT_INTERP 3)1 1350 1 2323 1792 t
(PT_NOTE 4)1 1350 1 2323 1912 t
(PT_SHLIB 5)1 1350 1 2323 2032 t
(PT_PHDR 6)1 1350 1 2323 2152 t
(PT_LOPROC 0x70000000)1 1350 1 2323 2272 t
(PT_HIPROC 0x7fffffff)1 1350 1 2323 2392 t
10 S f
(___________________________ \347)1 675 1 2323 2448 t
(\347)2998 2412 w
(\347)2998 2312 w
(\347)2998 2212 w
(\347)2998 2112 w
(\347)2998 2012 w
(\347)2998 1912 w
(\347)2998 1812 w
(\347)2998 1712 w
(\347)2998 1612 w
(\347)2998 1512 w
(\347)2998 1412 w
8 PA f
5338 2640 658 2640 Dl
10 CW f
(PT_NULL)658 2880 w
10 PA f
( type lets the)3 563( This)1 240(The array element is unused; other members' values are unde\256ned.)9 2979 3 1378 2880 t
(program header table have ignored entries.)5 1916 1 1378 3000 t
10 CW f
(PT_LOAD)658 3180 w
10 PA f
(The array element speci\256es a loadable segment, described by)8 2693 1 1378 3180 t
10 CW f
(p_filesz)4096 3180 w
10 PA f
(and)4609 3180 w
10 CW f
(p_memsz)4803 3180 w
10 PA f
(.)5231 3180 w
( the)1 164( If)1 117(The bytes from the \256le are mapped to the beginning of the memory segment.)13 3398 3 1378 3300 t
(segment's memory size \()3 1095 1 1378 3420 t
10 CW f
(p_memsz)2473 3420 w
10 PA f
(\) is larger than the \256le size \()7 1220 1 2893 3420 t
10 CW f
(p_filesz)4113 3420 w
10 PA f
(\), the ``extra'')2 582 1 4593 3420 t
( \256le)1 163( The)1 217(bytes are de\256ned to hold the value 0 and to follow the segment's initialized area.)14 3563 3 1378 3540 t
( segment entries in the program)5 1411( Loadable)1 459(size may not be larger than the memory size.)8 1982 3 1378 3660 t
(header table appear in ascending order, sorted on the)8 2361 1 1378 3780 t
10 CW f
(p_vaddr)3764 3780 w
10 PA f
(member.)4217 3780 w
10 CW f
(PT_DYNAMIC)658 3960 w
10 PA f
( ``Dynamic Section'' below)3 1179( See)1 199(The array element speci\256es dynamic linking information.)6 2533 3 1378 3960 t
(for more information.)2 962 1 1378 4080 t
10 CW f
(PT_INTERP)658 4260 w
10 PA f
(The array element speci\256es the location and size of a null-terminated path name to)13 3652 1 1378 4260 t
( segment type is meaningful only for executable \256les)8 2323( This)1 240(invoke as an interpreter.)3 1079 3 1378 4380 t
( it is)2 183( If)1 117(\(though it may occur for shared objects\); it may not occur more than once in a \256le.)16 3617 3 1378 4500 t
( ``Program Interpreter'' below)3 1328( See)1 199(present, it must precede any loadable segment entry.)7 2337 3 1378 4620 t
(for further information.)2 1043 1 1378 4740 t
10 CW f
(PT_NOTE)658 4920 w
10 PA f
( ``Note Sec-)2 503( See)1 199(The array element speci\256es the location and size of auxiliary information.)10 3245 3 1378 4920 t
(tion'' below for details.)3 1021 1 1378 5040 t
10 CW f
(PT_SHLIB)658 5220 w
10 PA f
( that contain an)3 684( Programs)1 481(This segment type is reserved but has unspeci\256ed semantics.)8 2682 3 1378 5220 t
(array element of this type do not conform to the ABI.)10 2345 1 1378 5340 t
10 CW f
(PT_PHDR)658 5520 w
10 PA f
(The array element, if present, speci\256es the location and size of the program header table)14 3886 1 1378 5520 t
( segment type may)3 839( This)1 240(itself, both in the \256le and in the memory image of the program.)12 2786 3 1378 5640 t
( it may occur only if the program header)8 1792( Moreover,)1 512(not occur more than once in a \256le.)7 1499 3 1378 5760 t
( it is present, it must precede any)7 1460( If)1 117(table is part of the memory image of the program.)9 2208 3 1378 5880 t
( ``Program Interpreter'' below for further information.)6 2396( See)1 199(loadable segment entry.)2 1060 3 1378 6000 t
10 CW f
(PT_LOPROC)658 6180 w
10 PA f
(through)1223 6180 w
10 CW f
(PT_HIPROC)1608 6180 w
10 PA f
(Values in this inclusive range are reserved for processor-speci\256c semantics.)9 3317 1 1378 6300 t
9 PB f
( 1.1)1 136( Version)1 371( Formats Speci\256cation,)2 929( Portable)1 851(Tool Interface Standards \(TIS\))3 1249 5 658 7324 t
9 R f
(2-3)5218 7324 w
cleartomark
showpage
restore
%%EndPage: 3 34
%%Page: 4 35
save
mark
35 pagesetup
9 HB f
(ELF: Executable and Linkable Format)4 1605 1 540 540 t
5400 540 2217 540 Dl
 /oldm /m load def /m {} def
 gsave newpath 540 -1000 moveto
 810 -1000 lineto
 810 -1300 lineto
 540 -1300 lineto
 closepath 0.999 setgray fill grestore
 /m /oldm load def
7 HB f
810 1000 540 1000 Dl
810 1300 810 1000 Dl
540 1300 810 1300 Dl
540 1000 540 1300 Dl
681 1420 681 1300 Dl
(NOTE)582 1168 w
9 H f
( is, a \256le's)3 395( That)1 230(Unless speci\256cally required elsewhere, all program header segment types are optional.)10 3460 3 900 1060 t
(program header table may contain only those elements relevant to its contents.)11 3145 1 900 1160 t
14 HB f
(Base Address)1 934 1 540 1820 t
10 PA f
(Executable and shared object \256les have a)6 1798 1 540 2060 t
10 PI f
(base address)1 493 1 2363 2060 t
10 PA f
(, which is the lowest virtual address associated with)8 2295 1 2864 2060 t
( use of the base address is to relocate the memory)10 2186( One)1 235(the memory image of the program's object \256le.)7 2067 3 540 2180 t
(image of the program during dynamic linking.)6 2067 1 540 2300 t
(An executable or shared object \256le's base address is calculated during execution from three values: the)15 4519 1 540 2480 t
(memory load address, the maximum page size, and the lowest virtual address of a program's loadable)15 4529 1 540 2600 t
( ``Program Loading'')2 921(segment. As)1 568 2 540 2720 t
(in this chapter describes, the virtual addresses in the program headers might not represent the actual vir-)16 4638 1 565 2840 t
( compute the base address, one determines the)7 2061( To)1 166(tual addresses of the program's memory image.)6 2113 3 540 2960 t
(memory address associated with the lowest)5 1930 1 540 3080 t
10 CW f
(p_vaddr)2495 3080 w
10 PA f
(value for a)2 471 1 2948 3080 t
10 CW f
(PT_LOAD)3444 3080 w
10 PA f
( then obtains)2 569(segment. One)1 633 2 3897 3080 t
(the base address by truncating the memory address to the nearest multiple of the maximum page size.)16 4520 1 540 3200 t
(Depending on the kind of \256le being loaded into memory, the memory address might or might not match)17 4627 1 540 3320 t
(the)540 3440 w
10 CW f
(p_vaddr)704 3440 w
10 PA f
(values.)1157 3440 w
(As ``Sections'' in Part 1 describes, the)6 1637 1 540 3620 t
10 CW f
(.bss)2202 3620 w
10 PA f
(section has the type)3 870 1 2475 3620 t
10 CW f
(SHT_NOBITS)3370 3620 w
10 PA f
( it occupies no)3 632(. Although)1 502 2 3978 3620 t
( these uninitialized data reside)4 1354( Normally,)1 505(space in the \256le, it contributes to the segment's memory image.)10 2783 3 540 3740 t
(at the end of the segment, thereby making)7 1864 1 540 3860 t
10 CW f
(p_memsz)2429 3860 w
10 PA f
(larger than)1 487 1 2882 3860 t
10 CW f
(p_filesz)3394 3860 w
10 PA f
(in the associated program)3 1144 1 3907 3860 t
(header element.)1 707 1 540 3980 t
14 HB f
(Note Section)1 854 1 540 4360 t
10 PA f
(Sometimes a vendor or system builder needs to mark an object \256le with special information that other)16 4502 1 540 4600 t
( of type)2 335( Sections)1 412(programs will check for conformance, compatibility, etc.)6 2492 3 540 4720 t
10 CW f
(SHT_NOTE)3804 4720 w
10 PA f
(and program)1 583 1 4317 4720 t
(header elements of type)3 1059 1 540 4840 t
10 CW f
(PT_NOTE)1624 4840 w
10 PA f
( note information in sections and)5 1454( The)1 217(can be used for this purpose.)5 1271 3 2077 4840 t
(program header elements holds any number of entries, each of which is an array of 4-byte words in the)18 4552 1 540 4960 t
( appear below to help explain note information organization, but)9 2870( Labels)1 335(format of the target processor.)4 1337 3 540 5080 t
(they are not part of the speci\256cation.)6 1617 1 540 5200 t
8 HB f
5220 5360 540 5360 Dl
9 HB f
( Information)1 520( Note)1 250(Figure 2-3:)1 460 3 540 5460 t
10 S f
(_ _________)1 460 1 2650 5552 t
10 CW f
(namesz)2700 5672 w
10 S f
(_ _________)1 460 1 2650 5692 t
10 CW f
(descsz)2700 5812 w
10 S f
(_ _________)1 460 1 2650 5832 t
10 CW f
(type)2760 5952 w
10 S f
(_ _________)1 460 1 2650 5972 t
10 CW f
(name)2760 6092 w
(. . .)2 300 1 2730 6162 t
10 S f
(_ _________)1 460 1 2650 6232 t
10 CW f
(desc)2760 6352 w
(. . .)2 300 1 2730 6422 t
10 S f
( \347)1 -460(_ _________)1 460 2 2650 6492 t
(\347)2650 6452 w
(\347)2650 6352 w
(\347)2650 6252 w
(\347)2650 6152 w
(\347)2650 6052 w
(\347)2650 5952 w
(\347)2650 5852 w
(\347)2650 5752 w
(\347)2650 5652 w
(\347)3110 6492 w
(\347)3110 6452 w
(\347)3110 6352 w
(\347)3110 6252 w
(\347)3110 6152 w
(\347)3110 6052 w
(\347)3110 5952 w
(\347)3110 5852 w
(\347)3110 5752 w
(\347)3110 5652 w
8 PA f
5220 6684 540 6684 Dl
9 R f
(2-4)540 7324 w
9 PB f
( Interface Standards \(TIS\))3 1059( Tool)1 535(Portable Formats Speci\256cation, Version 1.1)4 1758 3 1868 7324 t
cleartomark
showpage
restore
%%EndPage: 4 35
%%Page: 5 36
save
mark
36 pagesetup
9 HB f
3841 540 658 540 Dl
(ELF: Executable and Linkable Format)4 1605 1 3913 540 t
10 CW f
(namesz)658 1020 w
10 PA f
(and)1043 1020 w
10 CW f
(name)1237 1020 w
10 PA f
(The \256rst)1 368 1 1198 1140 t
10 CW f
(namesz)1591 1140 w
10 PA f
(bytes in)1 346 1 1984 1140 t
10 CW f
(name)2355 1140 w
10 PA f
(contain a null-terminated character representation of the)6 2500 1 2628 1140 t
( By)1 167( is no formal mechanism for avoiding name con\257icts.)8 2341( There)1 305(entry's owner or originator.)3 1229 4 1198 1260 t
(convention, vendors use their own name, such as ``XYZ Computer Company,'' as the)12 3760 1 1198 1380 t
( no name is present,)4 882(identi\256er. If)1 549 2 1198 1500 t
10 CW f
(namesz)2654 1500 w
10 PA f
( is present, if necessary, to)5 1153( Padding)1 425(contains 0.)1 469 3 3047 1500 t
( padding is not included in)5 1194( Such)1 265(ensure 4-byte alignment for the descriptor.)5 1889 3 1198 1620 t
10 CW f
(namesz)4571 1620 w
10 PA f
(.)4939 1620 w
10 CW f
(descsz)658 1800 w
10 PA f
(and)1043 1800 w
10 CW f
(desc)1237 1800 w
10 PA f
(The \256rst)1 368 1 1198 1920 t
10 CW f
(descsz)1591 1920 w
10 PA f
(bytes in)1 346 1 1984 1920 t
10 CW f
(desc)2355 1920 w
10 PA f
( ABI places no constraints on a)6 1356( The)1 217(hold the note descriptor.)3 1088 3 2628 1920 t
( no descriptor is present,)4 1090( If)1 117(descriptor's contents.)1 943 3 1198 2040 t
10 CW f
(descsz)3373 2040 w
10 PA f
( is present, if)3 562( Padding)1 425(contains 0.)1 469 3 3766 2040 t
( padding is not included)4 1082( Such)1 265(necessary, to ensure 4-byte alignment for the next note entry.)9 2698 3 1198 2160 t
(in)1198 2280 w
10 CW f
(descsz)1310 2280 w
10 PA f
(.)1678 2280 w
10 CW f
(type)658 2460 w
10 PA f
( originator controls its own types;)5 1490( Each)1 263(This word gives the interpretation of the descriptor.)7 2292 3 1198 2460 t
( a program must recognize)4 1190( Thus,)1 296(multiple interpretations of a single type value may exist.)8 2495 3 1198 2580 t
( currently must be non-)4 1038( Types)1 317(both the name and the type to ``understand'' a descriptor.)9 2552 3 1198 2700 t
( ABI does not de\256ne what descriptors mean.)7 1963(negative. The)1 620 2 1198 2820 t
(To illustrate, the following note segment holds two entries.)8 2606 1 658 3060 t
8 HB f
5338 3220 658 3220 Dl
9 HB f
( Note Segment)2 630( Example)1 420(Figure 2-4:)1 460 3 658 3320 t
10 PA f
(+0 +1 +2 +3)3 921 1 2409 3512 t
10 S f
(_ _____________________)1 1080 1 2330 3532 t
10 CW f
(namesz 7)1 1005 1 1895 3652 t
10 S f
(_ _____________________)1 1080 1 2330 3672 t
10 CW f
(descsz 0)1 1005 1 1895 3792 t
10 PA f
(No descriptor)1 615 1 3485 3792 t
10 S f
(_ _____________________)1 1080 1 2330 3812 t
10 CW f
(type 1)1 1005 1 1895 3932 t
10 S f
(_ _____________________)1 1080 1 2330 3952 t
10 CW f
( Y Z)2 540(name X)1 600 2 1895 4072 t
10 S f
(_ _____________________)1 1080 1 2330 4092 t
10 CW f
(C)2435 4212 w
10 S f
(\347)2600 4222 w
(\347)2600 4152 w
(\347)2600 4052 w
10 CW f
(o)2705 4212 w
10 S f
(\347)2870 4222 w
(\347)2870 4152 w
(\347)2870 4052 w
10 CW f
(\\0)2945 4212 w
10 S f
(\347)3140 4222 w
(\347)3140 4152 w
(\347)3140 4052 w
8 PI f
(pad)3217 4212 w
10 S f
(_ _____________________)1 1080 1 2330 4222 t
(_ _____________________)1 1080 1 2330 4242 t
10 CW f
(namesz 7)1 1005 1 1895 4352 t
10 S f
(_ _____________________)1 1080 1 2330 4372 t
10 CW f
(descsz 8)1 1005 1 1895 4492 t
10 S f
(_ _____________________)1 1080 1 2330 4512 t
10 CW f
(type 3)1 1005 1 1895 4632 t
10 S f
(_ _____________________)1 1080 1 2330 4652 t
10 CW f
( Y Z)2 540(name X)1 600 2 1895 4772 t
10 S f
(_ _____________________)1 1080 1 2330 4792 t
10 CW f
(C)2435 4912 w
10 S f
(\347)2600 4932 w
(\347)2600 4852 w
(\347)2600 4752 w
10 CW f
(o)2705 4912 w
10 S f
(\347)2870 4932 w
(\347)2870 4852 w
(\347)2870 4752 w
10 CW f
(\\0)2945 4912 w
10 S f
(\347)3140 4932 w
(\347)3140 4852 w
(\347)3140 4752 w
8 PI f
(pad)3217 4912 w
10 S f
(_ _____________________)1 1080 1 2330 4932 t
10 CW f
(desc)1895 5052 w
10 PI f
(word 0)1 280 1 2730 5052 t
10 S f
(_ _____________________)1 1080 1 2330 5072 t
10 PI f
(word 1)1 280 1 2730 5192 t
10 S f
( \347)1 -1080(_ _____________________)1 1080 2 2330 5212 t
(\347)2330 5132 w
(\347)2330 5032 w
(\347)2330 4932 w
(\347)2330 4832 w
(\347)2330 4732 w
(\347)2330 4632 w
(\347)2330 4532 w
(\347)2330 4432 w
(\347)2330 4332 w
(\347)2330 4232 w
(\347)2330 4132 w
(\347)2330 4032 w
(\347)2330 3932 w
(\347)2330 3832 w
(\347)2330 3732 w
(\347)2330 3632 w
(\347)3410 5212 w
(\347)3410 5132 w
(\347)3410 5032 w
(\347)3410 4932 w
(\347)3410 4832 w
(\347)3410 4732 w
(\347)3410 4632 w
(\347)3410 4532 w
(\347)3410 4432 w
(\347)3410 4332 w
(\347)3410 4232 w
(\347)3410 4132 w
(\347)3410 4032 w
(\347)3410 3932 w
(\347)3410 3832 w
(\347)3410 3732 w
(\347)3410 3632 w
8 PA f
5338 5404 658 5404 Dl
 /oldm /m load def /m {} def
 gsave newpath 658 -5624 moveto
 928 -5624 lineto
 928 -5924 lineto
 658 -5924 lineto
 closepath 0.999 setgray fill grestore
 /m /oldm load def
7 HB f
928 5624 658 5624 Dl
928 5924 928 5624 Dl
658 5924 928 5924 Dl
658 5624 658 5924 Dl
799 6044 799 5924 Dl
(NOTE)700 5792 w
9 H f
(The system reserves note information with no name \()8 2120 1 1018 5684 t
9 CW f
(namesz= =0)1 493 1 3138 5684 t
9 H f
(\) and with a zero-length name)5 1190 1 3631 5684 t
(\()1018 5784 w
9 CW f
(name[0]= ='\\0')1 709 1 1048 5784 t
9 H f
( other names must have at least one non-null)8 1800( All)1 150(\) but currently de\256nes no types.)5 1255 3 1757 5784 t
(character.)1018 5884 w
9 PB f
( 1.1)1 136( Version)1 371( Formats Speci\256cation,)2 929( Portable)1 851(Tool Interface Standards \(TIS\))3 1249 5 658 7324 t
9 R f
(2-5)5218 7324 w
cleartomark
showpage
restore
%%EndPage: 5 36
%%Page: 6 37
save
mark
37 pagesetup
9 HB f
(ELF: Executable and Linkable Format)4 1605 1 540 540 t
5400 540 2217 540 Dl
 /oldm /m load def /m {} def
 gsave newpath 540 -1000 moveto
 810 -1000 lineto
 810 -1300 lineto
 540 -1300 lineto
 closepath 0.999 setgray fill grestore
 /m /oldm load def
7 HB f
810 1000 540 1000 Dl
810 1300 810 1000 Dl
540 1300 810 1300 Dl
540 1000 540 1300 Dl
681 1420 681 1300 Dl
(NOTE)582 1168 w
9 H f
( presence of note information does not affect a program's ABI confor-)11 2755( The)1 205(Note information is optional.)3 1115 3 900 1060 t
( the pro-)2 335( Otherwise,)1 480(mance, provided the information does not affect the program's execution behavior.)10 3280 3 900 1160 t
(gram does not conform to the ABI and has unde\256ned behavior.)10 2505 1 900 1260 t
9 R f
(2-6)540 7324 w
9 PB f
( Interface Standards \(TIS\))3 1059( Tool)1 535(Portable Formats Speci\256cation, Version 1.1)4 1758 3 1868 7324 t
cleartomark
showpage
restore
%%EndPage: 6 37
%%Page: 7 38
save
mark
38 pagesetup
16 HB f
5458 516 658 516 Dl
(Program Loading)1 1329 1 658 682 t
10 PA f
(As the system creates or augments a process image, it logically copies a \256le's segment to a virtual)17 4288 1 658 1042 t
( if\320the system physically reads the \256le depends on the program's execu-)11 3230( When\320and)1 583(memory segment.)1 798 3 658 1162 t
( process does not require a physical page unless it references the logical)12 3157( A)1 128(tion behavior, system load, etc.)4 1370 3 658 1282 t
( delaying)1 412( Therefore)1 481(page during execution, and processes commonly leave many pages unreferenced.)9 3608 3 658 1402 t
( obtain this ef\256ciency in)4 1050( To)1 166(physical reads frequently obviates them, improving system performance.)7 3234 3 658 1522 t
(practice, executable and shared object \256les must have segment images whose \256le offsets and virtual)14 4393 1 658 1642 t
(addresses are congruent, modulo the page size.)6 2094 1 658 1762 t
(Virtual addresses and \256le offsets for the SYSTEM V architecture segments are congruent modulo 4 KB)15 4508 1 658 1942 t
(\()658 2062 w
10 CW f
(0x1000)691 2062 w
10 PA f
( 4 KB is the maximum page size, the \256les will be suitable for pag-)14 2872( Because)1 403(\) or larger powers of 2.)5 1007 3 1051 2062 t
(ing regardless of physical page size.)5 1588 1 658 2182 t
8 HB f
5338 2342 658 2342 Dl
9 HB f
( File)1 180( Executable)1 525(Figure 2-5:)1 460 3 658 2442 t
10 PA f
( Address)1 397( Virtual)1 788( File)1 1009(File Offset)1 455 4 1859 2634 t
10 S f
(_ ___________________)1 961 1 2762 2654 t
10 CW f
(0)2627 2774 w
10 PA f
(ELF header)1 508 1 2988 2774 t
10 S f
(_ ___________________)1 961 1 2762 2794 t
10 CW f
(Program header table)2 1200 1 1487 2914 t
10 S f
(_ ___________________)1 961 1 2762 2934 t
10 PA f
(Other information)1 811 1 2837 3054 t
10 S f
(_ ___________________)1 961 1 2762 3074 t
10 CW f
(0x100)2387 3194 w
10 PA f
(Text segment)1 592 1 2946 3194 t
10 CW f
(0x8048100)3798 3194 w
10 PA f
(. . .)2 125 1 3180 3314 t
10 CW f
(0x2be00)2903 3434 w
10 PA f
(bytes)3348 3434 w
10 CW f
(0x8073eff)3798 3434 w
10 S f
(_ ___________________)1 961 1 2762 3454 t
10 CW f
(0x2bf00)2267 3574 w
10 PA f
(Data segment)1 608 1 2938 3574 t
10 CW f
(0x8074f00)3798 3574 w
10 PA f
(. . .)2 125 1 3180 3694 t
10 CW f
(0x4e00)2933 3814 w
10 PA f
(bytes)3318 3814 w
10 CW f
(0x8079cff)3798 3814 w
10 S f
(_ ___________________)1 961 1 2762 3834 t
10 CW f
(0x30d00)2267 3954 w
10 PA f
(Other information)1 811 1 2837 3954 t
(. . .)2 125 1 3180 4024 t
10 S f
( \347)1 -961(_ ___________________)1 961 2 2762 4094 t
(\347)2762 4054 w
(\347)2762 3954 w
(\347)2762 3854 w
(\347)2762 3754 w
(\347)2762 3654 w
(\347)2762 3554 w
(\347)2762 3454 w
(\347)2762 3354 w
(\347)2762 3254 w
(\347)2762 3154 w
(\347)2762 3054 w
(\347)2762 2954 w
(\347)2762 2854 w
(\347)2762 2754 w
(\347)3723 4094 w
(\347)3723 4054 w
(\347)3723 3954 w
(\347)3723 3854 w
(\347)3723 3754 w
(\347)3723 3654 w
(\347)3723 3554 w
(\347)3723 3454 w
(\347)3723 3354 w
(\347)3723 3254 w
(\347)3723 3154 w
(\347)3723 3054 w
(\347)3723 2954 w
(\347)3723 2854 w
(\347)3723 2754 w
8 PA f
5338 4286 658 4286 Dl
5338 4566 658 4566 Dl
9 HB f
( Header Segments)2 785( Program)1 420(Figure 2-6:)1 460 3 658 4666 t
10 PA f
( Data)1 896(Member Text)1 960 2 1923 4858 t
10 S f
(_ _____________________________________________)1 2256 1 1870 4878 t
10 CW f
( PT_LOAD)1 1054(p_type PT_LOAD)1 1202 2 1870 4998 t
( 0x2bf00)1 1054(p_offset 0x100)1 1202 2 1870 5118 t
( 0x8074f00)1 1054(p_vaddr 0x8048100)1 1202 2 1870 5238 t
(p_paddr)1870 5358 w
10 PA f
(unspeci\256ed unspeci\256ed)1 1565 1 2561 5358 t
10 CW f
( 0x4e00)1 1054(p_filesz 0x2be00)1 1202 2 1870 5478 t
( 0x5e24)1 1054(p_memsz 0x2be00)1 1202 2 1870 5598 t
( + PF_W + PF_X)4 664( PF_R)1 390( + PF_X)2 332(p_flags PF_R)1 870 4 1870 5718 t
( 0x1000)1 1054(p_align 0x1000)1 1202 2 1870 5838 t
10 S f
( \347)1 -1701(_ _____________________________________________)1 2256 2 1870 5894 t
(\347)2425 5878 w
(\347)2425 5778 w
(\347)2425 5678 w
(\347)2425 5578 w
(\347)2425 5478 w
(\347)2425 5378 w
(\347)2425 5278 w
(\347)2425 5178 w
(\347)2425 5078 w
(\347)2425 4978 w
(\347)3147 5894 w
(\347)3147 5878 w
(\347)3147 5778 w
(\347)3147 5678 w
(\347)3147 5578 w
(\347)3147 5478 w
(\347)3147 5378 w
(\347)3147 5278 w
(\347)3147 5178 w
(\347)3147 5078 w
(\347)3147 4978 w
8 PA f
5338 6086 658 6086 Dl
10 PA f
(Although the example's \256le offsets and virtual addresses are congruent modulo 4 KB for both text and)16 4521 1 658 6386 t
(data, up to four \256le pages hold impure text or data \(depending on page size and \256le system block size\).)19 4557 1 658 6506 t
10 S f
()816 6686 w
816 6686 m
50 build_bx
866 6686 m
10 PA f
(The \256rst text page contains the ELF header, the program header table, and other information.)14 4118 1 932 6686 t
9 PB f
( 1.1)1 136( Version)1 371( Formats Speci\256cation,)2 929( Portable)1 851(Tool Interface Standards \(TIS\))3 1249 5 658 7324 t
9 R f
(2-7)5218 7324 w
cleartomark
showpage
restore
%%EndPage: 7 38
%%Page: 8 39
save
mark
39 pagesetup
9 HB f
(ELF: Executable and Linkable Format)4 1605 1 540 540 t
5400 540 2217 540 Dl
10 S f
()698 1020 w
698 1020 m
50 build_bx
748 1020 m
10 PA f
(The last text page holds a copy of the beginning of data.)11 2467 1 814 1020 t
10 S f
()698 1200 w
698 1200 m
50 build_bx
748 1200 m
10 PA f
(The \256rst data page has a copy of the end of text.)11 2114 1 814 1200 t
10 S f
()698 1380 w
698 1380 m
50 build_bx
748 1380 m
10 PA f
(The last data page may contain \256le information not relevant to the running process.)13 3691 1 814 1380 t
(Logically, the system enforces the memory permissions as if each segment were complete and separate;)14 4563 1 540 1560 t
(segments' addresses are adjusted to ensure each logical page in the address space has a single set of per-)18 4601 1 540 1680 t
( the example above, the region of the \256le holding the end of text and the beginning of data)18 3986(missions. In)1 552 2 540 1800 t
(will be mapped twice: at one virtual address for text and at a different virtual address for data.)17 4179 1 540 1920 t
(The end of the data segment requires special handling for uninitialized data, which the system de\256nes to)16 4628 1 540 2100 t
( if a \256le's last data page includes information not in the logical memory)13 3145( Thus)1 271(begin with zero values.)3 1027 3 540 2220 t
( ``Impuri-)1 450(page, the extraneous data must be set to zero, not the unknown contents of the executable \256le.)16 4154 2 540 2340 t
(ties'' in the other three pages are not logically part of the process image; whether the system expunges)17 4514 1 540 2460 t
( memory image for this program follows, assuming 4 KB \()10 2568( The)1 217(them is unspeci\256ed.)2 884 3 540 2580 t
10 CW f
(0x1000)4209 2580 w
10 PA f
(\) pages.)1 339 1 4569 2580 t
8 HB f
5220 2740 540 2740 Dl
9 HB f
( Image Segments)2 740( Process)1 400(Figure 2-7:)1 460 3 540 2840 t
10 PA f
( Segment)1 754( Contents)1 767(Virtual Address)1 710 3 1764 3032 t
10 S f
(_ ___________________)1 987 1 2549 3052 t
10 CW f
(0x8048000)1934 3172 w
10 PI f
(Header padding)1 642 1 2721 3172 t
10 CW f
(0x100)2763 3292 w
10 PA f
(bytes)3088 3292 w
10 S f
(_ ___________________)1 987 1 2549 3312 t
10 CW f
(0x8048100)1934 3432 w
10 PA f
(Text)3706 3302 w
(Text segment)1 592 1 2746 3492 t
(. . .)2 125 1 2963 3672 t
10 CW f
(0x2be00)2703 3912 w
10 PA f
(bytes)3148 3912 w
10 S f
(_ ___________________)1 987 1 2549 3932 t
10 CW f
(0x8073f00)1934 4052 w
10 PI f
(Data padding)1 552 1 2766 4052 t
10 CW f
(0x100)2763 4172 w
10 PA f
(bytes)3088 4172 w
10 S f
(\347)2549 4192 w
(\347)2549 4132 w
(\347)2549 4032 w
(\347)2549 3932 w
(\347)2549 3832 w
(\347)2549 3732 w
(\347)2549 3632 w
(\347)2549 3532 w
(\347)2549 3432 w
(\347)2549 3332 w
(\347)2549 3232 w
(\347)2549 3132 w
(_ ___________________\347)1 987 1 2549 4192 t
(\347)3536 4132 w
(\347)3536 4032 w
(\347)3536 3932 w
(\347)3536 3832 w
(\347)3536 3732 w
(\347)3536 3632 w
(\347)3536 3532 w
(\347)3536 3432 w
(\347)3536 3332 w
(\347)3536 3232 w
(\347)3536 3132 w
(_ ___________________)1 987 1 2549 4332 t
10 CW f
(0x8074000)1934 4452 w
10 PI f
(Text padding)1 536 1 2774 4452 t
10 CW f
(0xf00)2763 4572 w
10 PA f
(bytes)3088 4572 w
10 S f
(_ ___________________)1 987 1 2549 4592 t
10 CW f
(0x8074f00)1934 4712 w
10 PA f
(Data)3698 4582 w
(Data segment)1 608 1 2738 4772 t
(. . .)2 125 1 2963 4952 t
10 CW f
(0x4e00)2733 5192 w
10 PA f
(bytes)3118 5192 w
10 S f
(_ ___________________)1 987 1 2549 5212 t
10 CW f
(0x8079d00)1934 5332 w
10 PA f
(Uninitialized data)1 800 1 2642 5332 t
10 CW f
(0x1024)2624 5452 w
10 PA f
(zero bytes)1 452 1 3009 5452 t
10 S f
(_ ___________________)1 987 1 2549 5472 t
10 CW f
(0x807ad24)1934 5592 w
10 PI f
(Page padding)1 547 1 2769 5592 t
10 CW f
(0x2dc)2654 5712 w
10 PA f
(zero bytes)1 452 1 2979 5712 t
10 S f
( \347)1 -987(_ ___________________)1 987 2 2549 5732 t
(\347)2549 5632 w
(\347)2549 5532 w
(\347)2549 5432 w
(\347)2549 5332 w
(\347)2549 5232 w
(\347)2549 5132 w
(\347)2549 5032 w
(\347)2549 4932 w
(\347)2549 4832 w
(\347)2549 4732 w
(\347)2549 4632 w
(\347)2549 4532 w
(\347)2549 4432 w
(\347)3536 5732 w
(\347)3536 5632 w
(\347)3536 5532 w
(\347)3536 5432 w
(\347)3536 5332 w
(\347)3536 5232 w
(\347)3536 5132 w
(\347)3536 5032 w
(\347)3536 4932 w
(\347)3536 4832 w
(\347)3536 4732 w
(\347)3536 4632 w
(\347)3536 4532 w
(\347)3536 4432 w
8 PA f
5220 5924 540 5924 Dl
10 PA f
( \256le seg-)2 367( Executable)1 530(One aspect of segment loading differs between executable \256les and shared objects.)11 3635 3 540 6224 t
( let the process execute correctly, the segments must reside at)10 2705( To)1 166(ments typically contain absolute code.)4 1687 3 540 6344 t
( the system uses the)4 879( Thus)1 271(the virtual addresses used to build the executable \256le.)8 2372 3 540 6464 t
10 CW f
(p_vaddr)4087 6464 w
10 PA f
(values)4540 6464 w
(unchanged as virtual addresses.)3 1416 1 540 6584 t
9 R f
(2-8)540 7324 w
9 PB f
( Interface Standards \(TIS\))3 1059( Tool)1 535(Portable Formats Speci\256cation, Version 1.1)4 1758 3 1868 7324 t
cleartomark
showpage
restore
%%EndPage: 8 39
%%Page: 9 40
save
mark
40 pagesetup
9 HB f
3841 540 658 540 Dl
(ELF: Executable and Linkable Format)4 1605 1 3913 540 t
10 PA f
( lets a)2 252( This)1 240(On the other hand, shared object segments typically contain position-independent code.)10 3886 3 658 1020 t
(segment's virtual address change from one process to another, without invalidating execution behavior.)12 4593 1 658 1140 t
(Though the system chooses virtual addresses for individual processes, it maintains the segments')12 4288 1 658 1260 t
10 PI f
(relative)4971 1260 w
(positions)658 1380 w
10 PA f
( position-independent code uses relative addressing between segments, the difference)9 3795(. Because)1 428 2 1027 1380 t
(between virtual addresses in memory must match the difference between virtual addresses in the \256le.)14 4486 1 658 1500 t
(The following table shows possible shared object virtual address assignments for several processes, illus-)13 4627 1 658 1620 t
( table also illustrates the base address computations.)7 2311( The)1 217(trating constant relative positioning.)3 1609 3 658 1740 t
8 HB f
5338 1900 658 1900 Dl
9 HB f
( Shared Object Segment Addresses)4 1525( Example)1 420(Figure 2-8:)1 460 3 658 2000 t
10 PA f
( Address)1 397( Base)1 547( Data)1 758(Sourc Text)1 876 4 1747 2192 t
10 S f
(_ _____________________________________________________)1 2656 1 1670 2212 t
10 PA f
(File)1670 2332 w
10 CW f
( 0x0)1 750(0x200 0x2a400)1 1050 2 2526 2332 t
10 PA f
(Process 1)1 406 1 1670 2452 t
10 CW f
(0x80000200 0x8002a400 0x80000000)2 2100 1 2226 2452 t
10 PA f
(Process 2)1 406 1 1670 2572 t
10 CW f
(0x80081200 0x800ab400 0x80081000)2 2100 1 2226 2572 t
10 PA f
(Process 3)1 406 1 1670 2692 t
10 CW f
(0x900c0200 0x900ea400 0x900c0000)2 2100 1 2226 2692 t
10 PA f
(Process 4)1 406 1 1670 2812 t
10 CW f
(0x900c6200 0x900f0400 0x900c6000)2 2100 1 2226 2812 t
10 S f
( \347)1 -2175(_ _____________________________________________________)1 2656 2 1670 2832 t
(\347)2151 2812 w
(\347)2151 2712 w
(\347)2151 2612 w
(\347)2151 2512 w
(\347)2151 2412 w
(\347)2151 2312 w
(\347)2901 2832 w
(\347)2901 2812 w
(\347)2901 2712 w
(\347)2901 2612 w
(\347)2901 2512 w
(\347)2901 2412 w
(\347)2901 2312 w
(\347)3651 2832 w
(\347)3651 2812 w
(\347)3651 2712 w
(\347)3651 2612 w
(\347)3651 2512 w
(\347)3651 2412 w
(\347)3651 2312 w
8 PA f
5338 3024 658 3024 Dl
9 PB f
( 1.1)1 136( Version)1 371( Formats Speci\256cation,)2 929( Portable)1 851(Tool Interface Standards \(TIS\))3 1249 5 658 7324 t
9 R f
(2-9)5218 7324 w
cleartomark
showpage
restore
%%EndPage: 9 40
%%Page: 10 41
save
mark
41 pagesetup
16 HB f
5340 516 540 516 Dl
(Dynamic Linking)1 1287 1 540 682 t
14 HB f
(Program Interpreter)1 1316 1 540 1062 t
10 PA f
(An executable \256le may have one)5 1433 1 540 1302 t
10 CW f
(PT_INTERP)1998 1302 w
10 PA f
( During)1 370(program header element.)2 1121 2 2571 1302 t
10 CW f
(exec)4087 1302 w
10 PA f
(\(BA)4335 1302 w
10 S f
(_)4507 1302 w
10 PA f
(OS\), the sys-)2 552 1 4557 1302 t
(tem retrieves a path name from the)6 1553 1 540 1422 t
10 CW f
(PT_INTERP)2118 1422 w
10 PA f
(segment and creates the initial process image from the)8 2400 1 2691 1422 t
( is, instead of using the original executable \256le's segment images, the sys-)12 3233( That)1 252(interpreter \256le's segments.)2 1175 3 540 1542 t
( then is the interpreter's responsibility to receive)7 2135( It)1 117(tem composes a memory image for the interpreter.)7 2243 3 540 1662 t
(control from the system and provide an environment for the application program.)11 3628 1 540 1782 t
( it may receive a \256le descriptor to read the exe-)10 2066( First,)1 275(The interpreter receives control in one of two ways.)8 2276 3 540 1962 t
( can use this \256le descriptor to read and/or map the executable)11 2745( It)1 117(cutable \256le, positioned at the beginning.)5 1771 3 540 2082 t
( depending on the executable \256le format, the system may load the)11 2911( Second,)1 394(\256le's segments into memory.)3 1273 3 540 2202 t
( the possible)2 549( With)1 270(executable \256le into memory instead of giving the interpreter an open \256le descriptor.)12 3708 3 540 2322 t
(exception of the \256le descriptor, the interpreter's initial process state matches what the executable \256le)14 4430 1 540 2442 t
( interpreter may be)3 849( An)1 186( interpreter itself may not require a second interpreter.)8 2412( The)1 217(would have received.)2 949 5 540 2562 t
(either a shared object or an executable \256le.)7 1871 1 540 2682 t
10 S f
()698 2862 w
698 2862 m
50 build_bx
748 2862 m
10 PA f
(A shared object \(the normal case\) is loaded as position-independent, with addresses that may vary)14 4349 1 814 2862 t
(from one process to another; the system creates its segments in the dynamic segment area used by)16 4330 1 814 2982 t
10 CW f
(mmap)814 3102 w
10 PA f
(\(KE)1062 3102 w
10 S f
(_)1229 3102 w
10 PA f
(OS\) and related services. Consequently, a shared object interpreter typically will not)11 3717 1 1279 3102 t
(con\257ict with the original executable \256le's original segment addresses.)8 3065 1 814 3222 t
10 S f
()698 3402 w
698 3402 m
50 build_bx
748 3402 m
10 PA f
(An executable \256le is loaded at \256xed addresses; the system creates its segments using the virtual)15 4208 1 814 3402 t
( an executable \256le interpreter's virtual)5 1682( Consequently,)1 689(addresses from the program header table.)5 1848 3 814 3522 t
(addresses may collide with the \256rst executable \256le; the interpreter is responsible for resolving)13 4130 1 814 3642 t
(con\257icts.)814 3762 w
14 HB f
(Dynamic Linker)1 1043 1 540 4202 t
10 PA f
(When building an executable \256le that uses dynamic linking, the link editor adds a program header ele-)16 4539 1 540 4442 t
(ment of type)2 562 1 540 4562 t
10 CW f
(PT_INTERP)1127 4562 w
10 PA f
(to an executable \256le, telling the system to invoke the dynamic linker as the pro-)14 3500 1 1700 4562 t
(gram interpreter.)1 761 1 540 4682 t
 /oldm /m load def /m {} def
 gsave newpath 540 -4842 moveto
 810 -4842 lineto
 810 -5142 lineto
 540 -5142 lineto
 closepath 0.999 setgray fill grestore
 /m /oldm load def
7 HB f
810 4842 540 4842 Dl
810 5142 810 4842 Dl
540 5142 810 5142 Dl
540 4842 540 5142 Dl
681 5262 681 5142 Dl
(NOTE)582 5010 w
9 H f
(The locations of the system provided dynamic linkers are processor)9 2685 1 900 4902 t
9 S1 f
(\261)3585 4902 w
9 H f
(speci\256c.)3635 4902 w
10 CW f
(Exec)540 5402 w
10 PA f
(\(BA)788 5402 w
10 S f
(_)960 5402 w
10 PA f
(OS\) and the dynamic linker cooperate to create the process image for the program, which)14 3947 1 1010 5402 t
(entails the following actions:)3 1266 1 540 5522 t
10 S f
()698 5702 w
698 5702 m
50 build_bx
748 5702 m
10 PA f
(Adding the executable \256le's memory segments to the process image;)9 3026 1 814 5702 t
10 S f
()698 5882 w
698 5882 m
50 build_bx
748 5882 m
10 PA f
(Adding shared object memory segments to the process image;)8 2744 1 814 5882 t
10 S f
()698 6062 w
698 6062 m
50 build_bx
748 6062 m
10 PA f
(Performing relocations for the executable \256le and its shared objects;)9 2984 1 814 6062 t
10 S f
()698 6242 w
698 6242 m
50 build_bx
748 6242 m
10 PA f
(Closing the \256le descriptor that was used to read the executable \256le, if one was given to the dynamic)18 4393 1 814 6242 t
(linker;)814 6362 w
10 S f
()698 6542 w
698 6542 m
50 build_bx
748 6542 m
10 PA f
(Transferring control to the program, making it look as if the program had received control directly)15 4358 1 814 6542 t
(from)814 6662 w
10 CW f
(exec)1055 6662 w
10 PA f
(\(BA)1303 6662 w
10 S f
(_)1475 6662 w
10 PA f
(OS\).)1525 6662 w
9 R f
(2-10)540 7324 w
9 PB f
( Interface Standards \(TIS\))3 1059( Tool)1 535(Portable Formats Speci\256cation, Version 1.1)4 1758 3 1868 7324 t
cleartomark
showpage
restore
%%EndPage: 10 41
%%Page: 11 42
save
mark
42 pagesetup
9 HB f
3841 540 658 540 Dl
(ELF: Executable and Linkable Format)4 1605 1 3913 540 t
10 PA f
(The link editor also constructs various data that assist the dynamic linker for executable and shared object)16 4676 1 658 1020 t
( shown above in ``Program Header,'' these data reside in loadable segments, making them avail-)14 4259(\256les. As)1 375 2 658 1140 t
( the pro-)2 377( See)1 199( again, recall the exact segment contents are processor-speci\256c.)8 2768( \(Once)1 312(able during execution.)2 988 5 658 1260 t
(cessor supplement for complete information.\))4 2016 1 658 1380 t
10 S f
()816 1560 w
816 1560 m
50 build_bx
866 1560 m
10 PA f
(A)932 1560 w
10 CW f
(.dynamic)1035 1560 w
10 PA f
(section with type)2 759 1 1548 1560 t
10 CW f
(SHT_DYNAMIC)2332 1560 w
10 PA f
( structure residing at the)4 1085( The)1 217(holds various data.)2 846 3 3025 1560 t
(beginning of the section holds the addresses of other dynamic linking information.)11 3652 1 932 1680 t
10 S f
()816 1860 w
816 1860 m
50 build_bx
866 1860 m
10 PA f
(The)932 1860 w
10 CW f
(.hash)1124 1860 w
10 PA f
(section with type)2 759 1 1457 1860 t
10 CW f
(SHT_HASH)2241 1860 w
10 PA f
(holds a symbol hash table.)4 1168 1 2754 1860 t
10 S f
()816 2040 w
816 2040 m
50 build_bx
866 2040 m
10 PA f
(The)932 2040 w
10 CW f
(.got)1124 2040 w
10 PA f
(and)1397 2040 w
10 CW f
(.plt)1591 2040 w
10 PA f
(sections with type)2 801 1 1864 2040 t
10 CW f
(SHT_PROGBITS)2690 2040 w
10 PA f
(hold two separate tables: the global offset)6 1834 1 3443 2040 t
( below explain how the dynamic linker uses and)8 2138( Sections)1 412(table and the procedure linkage table.)5 1670 3 932 2160 t
(changes the tables to create memory images for object \256les.)9 2607 1 932 2280 t
(Because every ABI-conforming program imports the basic system services from a shared object library,)13 4548 1 658 2460 t
(the dynamic linker participates in every ABI-conforming program execution.)8 3401 1 658 2580 t
(As ``Program Loading'' explains in the processor supplement, shared objects may occupy virtual memory)13 4671 1 658 2760 t
( dynamic)1 411( The)1 217(addresses that are different from the addresses recorded in the \256le's program header table.)13 4008 3 658 2880 t
(linker relocates the memory image, updating absolute addresses before the application gains control.)12 4461 1 658 3000 t
(Although the absolute address values would be correct if the library were loaded at the addresses)15 4316 1 658 3120 t
(speci\256ed in the program header table, this normally is not the case.)11 2960 1 658 3240 t
(If the process environment [see)4 1379 1 658 3420 t
10 CW f
(exec)2062 3420 w
10 PA f
(\(BA)2310 3420 w
10 S f
(_)2482 3420 w
10 PA f
(OS\)] contains a variable named)4 1379 1 2532 3420 t
10 CW f
(LD_BIND_NOW)3936 3420 w
10 PA f
(with a non-null)2 683 1 4629 3420 t
( exam-)1 296( For)1 201(value, the dynamic linker processes all relocation before transferring control to the program.)12 4084 3 658 3540 t
(ple, all the following environment entries would specify this behavior.)9 3108 1 658 3660 t
10 S f
()816 3840 w
816 3840 m
50 build_bx
866 3840 m
10 CW f
(LD_BIND_NOW=1)932 3840 w
10 S f
()816 4020 w
816 4020 m
50 build_bx
866 4020 m
10 CW f
(LD_BIND_NOW=on)932 4020 w
10 S f
()816 4200 w
816 4200 m
50 build_bx
866 4200 m
10 CW f
(LD_BIND_NOW=off)932 4200 w
10 PA f
(Otherwise,)658 4380 w
10 CW f
(LD_BIND_NOW)1168 4380 w
10 PA f
( dynamic)1 411( The)1 217(either does not occur in the environment or has a null value.)11 2662 3 1861 4380 t
(linker is permitted to evaluate procedure linkage table entries lazily, thus avoiding symbol resolution and)14 4676 1 658 4500 t
( ``Procedure Linkage Table'' in this part for more)8 2160( See)1 199(relocation overhead for functions that are not called.)7 2316 3 658 4620 t
(information.)658 4740 w
14 HB f
(Dynamic Section)1 1128 1 658 5120 t
10 PA f
(If an object \256le participates in dynamic linking, its program header table will have an element of type)17 4467 1 658 5360 t
10 CW f
(PT_DYNAMIC)658 5480 w
10 PA f
( ``segment'' contains the)3 1068(. This)1 265 2 1266 5480 t
10 CW f
(.dynamic)2624 5480 w
10 PA f
( special symbol,)2 702(section. A)1 462 2 3137 5480 t
10 CW f
(_DYNAMIC)4326 5480 w
10 PA f
(, labels the)2 467 1 4814 5480 t
(section, which contains an array of the following structures.)8 2640 1 658 5600 t
9 PB f
( 1.1)1 136( Version)1 371( Formats Specification,)2 939( Portable)1 851(Tool Interface Standards \(TIS\))3 1249 5 658 7324 t
9 R f
(2-11)5173 7324 w
cleartomark
showpage
restore
%%EndPage: 11 42
%%Page: 12 43
save
mark
43 pagesetup
9 HB f
(ELF: Executable and Linkable Format)4 1605 1 540 540 t
5400 540 2217 540 Dl
8 HB f
5220 1000 540 1000 Dl
9 HB f
( Structure)1 425( Dynamic)1 425(Figure 2-9:)1 460 3 540 1100 t
 /oldm /m load def /m {} def
 gsave 648 -1396 moveto
 648 -2476 828 -2476 180  arcto 4 {pop} repeat
 5148 -2476 5148 -2296 180  arcto 4 {pop} repeat
 5148 -1216 4968 -1216 180  arcto 4 {pop} repeat
 648 -1216 648 -1396 180  arcto 4 {pop} repeat
 0.999 setgray fill grestore 
 /m /oldm load def
8 CW f
648 2296 648 1396 Dl
648 2296 180 0 0 180 Da
4968 2476 828 2476 Dl
4968 2476 0 -180 180 0 Da
5148 1396 5148 2296 Dl
5148 1396 -180 0 0 -180 Da
828 1216 4968 1216 Dl
828 1216 0 180 -180 0 Da
( {)1 88( t r u c t)5 220( s)1 88(t y p e d e f)6 312 4 790 1496 t
( _ t a g ;)5 220( d)1 280(E l f 3 2 _ S w o r d)10 488 3 1150 1596 t
( {)1 88(u n i o n)4 224 2 1150 1696 t
( _ v a l ;)5 220( d)1 324(E l f 3 2 _ W o r d)9 444 3 1510 1796 t
( _ p t r ;)5 220( d)1 324(E l f 3 2 _ A d d r)9 444 3 1510 1896 t
( _ u n ;)4 176(} d)1 136 2 1150 1996 t
( l f 3 2 _ D y n ;)9 396(} E)1 136 2 790 2096 t
( D Y N A M I C [ ] ;)10 440( _)1 60( l f 3 2 _ D y n)8 352( E)1 88(e x t e r n)5 268 5 790 2296 t
5220 2604 540 2604 Dl
10 PA f
(For each object with this type,)5 1321 1 540 2784 t
10 CW f
(d_tag)1886 2784 w
10 PA f
(controls the interpretation of)3 1272 1 2219 2784 t
10 CW f
(d_un)3516 2784 w
10 PA f
(.)3764 2784 w
10 CW f
(d_val)540 2964 w
10 PA f
(These)1080 2964 w
10 CW f
(Elf32_Word)1362 2964 w
10 PA f
(objects represent integer values with various interpretations.)6 2680 1 1995 2964 t
10 CW f
(d_ptr)540 3144 w
10 PA f
(These)1080 3144 w
10 CW f
(Elf32_Addr)1362 3144 w
10 PA f
( mentioned previously,)2 1028( As)1 170(objects represent program virtual addresses.)4 1962 3 1995 3144 t
(a \256le's virtual addresses might not match the memory virtual addresses during execution.)12 3973 1 1080 3264 t
(When interpreting addresses contained in the dynamic structure, the dynamic linker com-)11 3983 1 1080 3384 t
( For)1 201(putes actual addresses, based on the original \256le value and the memory base address.)13 3775 2 1080 3504 t
(consistency, \256les do)2 880 1 1080 3624 t
10 PI f
(not)1985 3624 w
10 PA f
(contain relocation entries to ``correct'' addresses in the dynamic)8 2816 1 2143 3624 t
(structure.)1080 3744 w
( a tag is)3 335( If)1 117(The following table summarizes the tag requirements for executable and shared object \256les.)12 4040 3 540 3984 t
(marked ``mandatory,'' then the dynamic linking array for an ABI-conforming \256le must have an entry of)15 4581 1 540 4104 t
( ``optional'' means an entry for the tag may appear but is not required.)13 3115( Likewise,)1 471(that type.)1 421 3 540 4224 t
8 HB f
5220 4384 540 4384 Dl
9 HB f
( Array Tags,)2 520( Dynamic)1 425(Figure 2-10:)1 510 3 540 4484 t
9 CW f
(d_tag)2049 4484 w
10 PA f
(Name Value)1 1044 1 1324 4676 t
10 CW f
(d_un)2825 4676 w
10 PA f
( Object)1 307(Executable Shared)1 956 2 3367 4676 t
10 S f
(_ ______________________________________________________________________)1 3501 1 1129 4732 t
10 CW f
(DT_NULL 0)1 1410 1 1129 4852 t
10 PA f
( mandatory)1 662(ignored mandatory)1 1153 2 2689 4852 t
10 CW f
( d_val)1 450(DT_NEEDED 1)1 1410 2 1129 4972 t
10 PA f
(optional optional)1 1031 1 3351 4972 t
10 CW f
( d_val)1 450(DT_PLTRELSZ 2)1 1410 2 1129 5092 t
10 PA f
(optional optional)1 1031 1 3351 5092 t
10 CW f
( d_ptr)1 450(DT_PLTGOT 3)1 1410 2 1129 5212 t
10 PA f
(optional optional)1 1031 1 3351 5212 t
10 CW f
( d_ptr)1 450(DT_HASH 4)1 1410 2 1129 5332 t
10 PA f
(mandatory mandatory)1 1153 1 3351 5332 t
10 CW f
( d_ptr)1 450(DT_STRTAB 5)1 1410 2 1129 5452 t
10 PA f
(mandatory mandatory)1 1153 1 3351 5452 t
10 CW f
( d_ptr)1 450(DT_SYMTAB 6)1 1410 2 1129 5572 t
10 PA f
(mandatory mandatory)1 1153 1 3351 5572 t
10 CW f
( d_ptr)1 450(DT_RELA 7)1 1410 2 1129 5692 t
10 PA f
(mandatory optional)1 1031 1 3351 5692 t
10 CW f
( d_val)1 450(DT_RELASZ 8)1 1410 2 1129 5812 t
10 PA f
(mandatory optional)1 1031 1 3351 5812 t
10 CW f
( d_val)1 450(DT_RELAENT 9)1 1410 2 1129 5932 t
10 PA f
(mandatory optional)1 1031 1 3351 5932 t
10 CW f
( d_val)1 450(DT_STRSZ 10)1 1410 2 1129 6052 t
10 PA f
(mandatory mandatory)1 1153 1 3351 6052 t
10 CW f
( d_val)1 450(DT_SYMENT 11)1 1410 2 1129 6172 t
10 PA f
(mandatory mandatory)1 1153 1 3351 6172 t
10 CW f
( d_ptr)1 450(DT_INIT 12)1 1410 2 1129 6292 t
10 PA f
(optional optional)1 1031 1 3351 6292 t
10 CW f
( d_ptr)1 450(DT_FINI 13)1 1410 2 1129 6412 t
10 PA f
(optional optional)1 1031 1 3351 6412 t
10 CW f
( d_val)1 450(DT_SONAME 14)1 1410 2 1129 6532 t
10 PA f
(ignored optional)1 1031 1 3351 6532 t
10 CW f
( d_val)1 450(DT_RPATH 15)1 1410 2 1129 6652 t
10 PA f
(optional ignored)1 1009 1 3351 6652 t
10 CW f
(DT_SYMBOLIC 16)1 1410 1 1129 6772 t
10 PA f
(ignored ignored optional)2 1693 1 2689 6772 t
10 S f
(\347)1864 6772 w
(\347)1864 6732 w
(\347)1864 6632 w
(\347)1864 6532 w
(\347)1864 6432 w
(\347)1864 6332 w
(\347)1864 6232 w
(\347)1864 6132 w
(\347)1864 6032 w
(\347)1864 5932 w
(\347)1864 5832 w
(\347)1864 5732 w
(\347)1864 5632 w
(\347)1864 5532 w
(\347)1864 5432 w
(\347)1864 5332 w
(\347)1864 5232 w
(\347)1864 5132 w
(\347)1864 5032 w
(\347)1864 4932 w
(\347)1864 4832 w
(\347)2614 6772 w
(\347)2614 6732 w
(\347)2614 6632 w
(\347)2614 6532 w
(\347)2614 6432 w
(\347)2614 6332 w
(\347)2614 6232 w
(\347)2614 6132 w
(\347)2614 6032 w
(\347)2614 5932 w
(\347)2614 5832 w
(\347)2614 5732 w
(\347)2614 5632 w
(\347)2614 5532 w
(\347)2614 5432 w
(\347)2614 5332 w
(\347)2614 5232 w
(\347)2614 5132 w
(\347)2614 5032 w
(\347)2614 4932 w
(\347)2614 4832 w
(\347)3276 6772 w
(\347)3276 6732 w
(\347)3276 6632 w
(\347)3276 6532 w
(\347)3276 6432 w
(\347)3276 6332 w
(\347)3276 6232 w
(\347)3276 6132 w
(\347)3276 6032 w
(\347)3276 5932 w
(\347)3276 5832 w
(\347)3276 5732 w
(\347)3276 5632 w
(\347)3276 5532 w
(\347)3276 5432 w
(\347)3276 5332 w
(\347)3276 5232 w
(\347)3276 5132 w
(\347)3276 5032 w
(\347)3276 4932 w
(\347)3276 4832 w
(\347)3938 6772 w
(\347)3938 6732 w
(\347)3938 6632 w
(\347)3938 6532 w
(\347)3938 6432 w
(\347)3938 6332 w
(\347)3938 6232 w
(\347)3938 6132 w
(\347)3938 6032 w
(\347)3938 5932 w
(\347)3938 5832 w
(\347)3938 5732 w
(\347)3938 5632 w
(\347)3938 5532 w
(\347)3938 5432 w
(\347)3938 5332 w
(\347)3938 5232 w
(\347)3938 5132 w
(\347)3938 5032 w
(\347)3938 4932 w
(\347)3938 4832 w
9 R f
(2-12)540 7324 w
9 PB f
( Interface Standards \(TIS\))3 1059( Tool)1 535(Portable Formats Speci\256cation, Version 1.1)4 1758 3 1868 7324 t
cleartomark
showpage
restore
%%EndPage: 12 43
%%Page: 13 44
save
mark
44 pagesetup
9 HB f
3841 540 658 540 Dl
(ELF: Executable and Linkable Format)4 1605 1 3913 540 t
8 HB f
5338 1000 658 1000 Dl
9 HB f
( Array Tags,)2 520( Dynamic)1 425(Figure 2-10:)1 510 3 658 1100 t
9 CW f
(d_tag)2167 1100 w
9 H f
(\(continued \))1 465 1 2487 1100 t
10 PA f
(Name Value)1 1044 1 1442 1292 t
10 CW f
(d_un)2943 1292 w
10 PA f
( Object)1 307(Executable Shared)1 956 2 3485 1292 t
10 S f
(_ ______________________________________________________________________)1 3501 1 1247 1348 t
10 CW f
( d_ptr)1 450(DT_REL 17)1 1410 2 1247 1468 t
10 PA f
(mandatory optional)1 1031 1 3469 1468 t
10 CW f
( d_val)1 450(DT_RELSZ 18)1 1410 2 1247 1588 t
10 PA f
(mandatory optional)1 1031 1 3469 1588 t
10 CW f
( d_val)1 450(DT_RELENT 19)1 1410 2 1247 1708 t
10 PA f
(mandatory optional)1 1031 1 3469 1708 t
10 CW f
( d_val)1 450(DT_PLTREL 20)1 1410 2 1247 1828 t
10 PA f
(optional optional)1 1031 1 3469 1828 t
10 CW f
( d_ptr)1 450(DT_DEBUG 21)1 1410 2 1247 1948 t
10 PA f
(optional ignored)1 1009 1 3469 1948 t
10 CW f
(DT_TEXTREL 22)1 1410 1 1247 2068 t
10 PA f
( optional)1 662(ignored optional)1 1031 2 2807 2068 t
10 CW f
( d_ptr)1 450(DT_JMPREL 23)1 1410 2 1247 2188 t
10 PA f
(optional optional)1 1031 1 3469 2188 t
10 CW f
(DT_LOPROC 0x70000000)1 1410 1 1247 2308 t
10 PA f
(unspeci\256ed unspeci\256ed unspeci\256ed)2 1835 1 2807 2308 t
10 CW f
(DT_HIPROC 0x7fffffff)1 1410 1 1247 2428 t
10 PA f
(unspeci\256ed unspeci\256ed unspeci\256ed)2 1835 1 2807 2428 t
10 S f
( \347)1 -2766(_ ______________________________________________________________________)1 3501 2 1247 2484 t
(\347)1982 2448 w
(\347)1982 2348 w
(\347)1982 2248 w
(\347)1982 2148 w
(\347)1982 2048 w
(\347)1982 1948 w
(\347)1982 1848 w
(\347)1982 1748 w
(\347)1982 1648 w
(\347)1982 1548 w
(\347)1982 1448 w
(\347)2732 2484 w
(\347)2732 2448 w
(\347)2732 2348 w
(\347)2732 2248 w
(\347)2732 2148 w
(\347)2732 2048 w
(\347)2732 1948 w
(\347)2732 1848 w
(\347)2732 1748 w
(\347)2732 1648 w
(\347)2732 1548 w
(\347)2732 1448 w
(\347)3394 2484 w
(\347)3394 2448 w
(\347)3394 2348 w
(\347)3394 2248 w
(\347)3394 2148 w
(\347)3394 2048 w
(\347)3394 1948 w
(\347)3394 1848 w
(\347)3394 1748 w
(\347)3394 1648 w
(\347)3394 1548 w
(\347)3394 1448 w
(\347)4056 2484 w
(\347)4056 2448 w
(\347)4056 2348 w
(\347)4056 2248 w
(\347)4056 2148 w
(\347)4056 2048 w
(\347)4056 1948 w
(\347)4056 1848 w
(\347)4056 1748 w
(\347)4056 1648 w
(\347)4056 1548 w
(\347)4056 1448 w
8 PA f
5338 2676 658 2676 Dl
10 CW f
(DT_NULL)658 2916 w
10 PA f
(An entry with a)3 699 1 1450 2916 t
10 CW f
(DT_NULL)2174 2916 w
10 PA f
(tag marks the end of the)5 1073 1 2627 2916 t
10 CW f
(_DYNAMIC)3725 2916 w
10 PA f
(array.)4238 2916 w
10 CW f
(DT_NEEDED)658 3096 w
10 PA f
(This element holds the string table offset of a null-terminated string, giving the name of)14 3866 1 1450 3096 t
( offset is an index into the table recorded in the)10 2073( The)1 217(a needed library.)2 748 3 1450 3216 t
10 CW f
(DT_STRTAB)4513 3216 w
10 PA f
( ``Shared Object Dependencies'' for more information about these names.)9 3230(entry. See)1 459 2 1450 3336 t
( entries' relative)2 709( These)1 307(The dynamic array may contain multiple entries with this type.)9 2796 3 1450 3456 t
(order is signi\256cant, though their relation to entries of other types is not.)12 3159 1 1450 3576 t
10 CW f
(DT_PLTRELSZ)658 3756 w
10 PA f
(This element holds the total size, in bytes, of the relocation entries associated with the)14 3778 1 1450 3756 t
( an entry of type)4 728( If)1 117(procedure linkage table.)2 1072 3 1450 3876 t
10 CW f
(DT_JMPREL)3392 3876 w
10 PA f
(is present, a)2 525 1 3965 3876 t
10 CW f
(DT_PLTRELSZ)4515 3876 w
10 PA f
(must accompany it.)2 865 1 1450 3996 t
10 CW f
(DT_PLTGOT)658 4176 w
10 PA f
(This element holds an address associated with the procedure linkage table and/or the)12 3796 1 1450 4176 t
( this section in the processor supplement for details.)8 2294( See)1 199(global offset table.)2 808 3 1450 4296 t
10 CW f
(DT_HASH)658 4476 w
10 PA f
(This element holds the address of the symbol hash table, described in ``Hash Table.'')13 3723 1 1450 4476 t
(This hash table refers to the symbol table referenced by the)10 2599 1 1450 4596 t
10 CW f
(DT_SYMTAB)4074 4596 w
10 PA f
(element.)4639 4596 w
10 CW f
(DT_STRTAB)658 4776 w
10 PA f
( names,)1 336( Symbol)1 386(This element holds the address of the string table, described in Part 1.)12 3068 3 1450 4776 t
(library names, and other strings reside in this table.)8 2270 1 1450 4896 t
10 CW f
(DT_SYMTAB)658 5076 w
10 PA f
(This element holds the address of the symbol table, described in Part 1, with)13 3363 1 1450 5076 t
10 CW f
(Elf32_Sym)1450 5196 w
10 PA f
(entries for the 32-bit class of \256les.)6 1465 1 2023 5196 t
10 CW f
(DT_RELA)658 5376 w
10 PA f
( in the)2 276( Entries)1 361(This element holds the address of a relocation table, described in Part 1.)12 3162 3 1450 5376 t
(table have explicit addends, such as)5 1578 1 1450 5496 t
10 CW f
(Elf32_Rela)3053 5496 w
10 PA f
( object \256le)2 446( An)1 186(for the 32-bit \256le class.)4 987 3 3686 5496 t
( building the relocation table for an exe-)7 1764( When)1 314(may have multiple relocation sections.)4 1699 3 1450 5616 t
(cutable or shared object \256le, the link editor catenates those sections to form a single)14 3670 1 1450 5736 t
( the sections remain independent in the object \256le, the dynamic linker)11 3072(table. Although)1 717 2 1450 5856 t
( the dynamic linker creates the process image for an execut-)10 2635( When)1 314(sees a single table.)3 807 3 1450 5976 t
(able \256le or adds a shared object to the process image, it reads the relocation table and)16 3757 1 1450 6096 t
( this element is present, the dynamic structure must)8 2287( If)1 117(performs the associated actions.)3 1410 3 1450 6216 t
(also have)1 413 1 1450 6336 t
10 CW f
(DT_RELASZ)1888 6336 w
10 PA f
(and)2461 6336 w
10 CW f
(DT_RELAENT)2655 6336 w
10 PA f
( relocation is ``mandatory'')3 1190(elements. When)1 733 2 3288 6336 t
(for a \256le, either)3 672 1 1450 6456 t
10 CW f
(DT_RELA)2147 6456 w
10 PA f
(or)2600 6456 w
10 CW f
(DT_REL)2720 6456 w
10 PA f
(may occur \(both are permitted but not required\).)7 2158 1 3113 6456 t
10 CW f
(DT_RELASZ)658 6636 w
10 PA f
(This element holds the total size, in bytes, of the)9 2118 1 1450 6636 t
10 CW f
(DT_RELA)3593 6636 w
10 PA f
(relocation table.)1 706 1 4046 6636 t
9 PB f
( 1.1)1 136( Version)1 371( Formats Speci\256cation,)2 929( Portable)1 851(Tool Interface Standards \(TIS\))3 1249 5 658 7324 t
9 R f
(2-13)5173 7324 w
cleartomark
showpage
restore
%%EndPage: 13 44
%%Page: 14 45
save
mark
45 pagesetup
9 HB f
(ELF: Executable and Linkable Format)4 1605 1 540 540 t
5400 540 2217 540 Dl
10 CW f
(DT_RELAENT)540 1020 w
10 PA f
(This element holds the size, in bytes, of the)8 1893 1 1332 1020 t
10 CW f
(DT_RELA)3250 1020 w
10 PA f
(relocation entry.)1 726 1 3703 1020 t
10 CW f
(DT_STRSZ)540 1200 w
10 PA f
(This element holds the size, in bytes, of the string table.)10 2441 1 1332 1200 t
10 CW f
(DT_SYMENT)540 1380 w
10 PA f
(This element holds the size, in bytes, of a symbol table entry.)11 2679 1 1332 1380 t
10 CW f
(DT_INIT)540 1560 w
10 PA f
(This element holds the address of the initialization function, discussed in ``Initialization)11 3866 1 1332 1560 t
(and Termination Functions'' below.)3 1579 1 1332 1680 t
10 CW f
(DT_FINI)540 1860 w
10 PA f
(This element holds the address of the termination function, discussed in ``Initialization)11 3826 1 1332 1860 t
(and Termination Functions'' below.)3 1579 1 1332 1980 t
10 CW f
(DT_SONAME)540 2160 w
10 PA f
(This element holds the string table offset of a null-terminated string, giving the name of)14 3866 1 1332 2160 t
( offset is an index into the table recorded in the)10 2073( The)1 217(the shared object.)2 771 3 1332 2280 t
10 CW f
(DT_STRTAB)4418 2280 w
10 PA f
( ``Shared Object Dependencies'' below for more information about these)9 3189(entry. See)1 459 2 1332 2400 t
(names.)1332 2520 w
10 CW f
(DT_RPATH)540 2700 w
10 PA f
(This element holds the string table offset of a null-terminated search library search path)13 3867 1 1332 2700 t
( offset is an index into the table)7 1375( The)1 217(string, discussed in ``Shared Object Dependencies.'')5 2274 3 1332 2820 t
(recorded in the)2 673 1 1332 2940 t
10 CW f
(DT_STRTAB)2030 2940 w
10 PA f
(entry.)2603 2940 w
10 CW f
(DT_SYMBOLIC)540 3120 w
10 PA f
(This element's presence in a shared object library alters the dynamic linker's symbol)12 3715 1 1332 3120 t
( of starting a symbol)4 904( Instead)1 376(resolution algorithm for references within the library.)6 2367 3 1332 3240 t
( If)1 117(search with the executable \256le, the dynamic linker starts from the shared object itself.)13 3755 2 1332 3360 t
(the shared object fails to supply the referenced symbol, the dynamic linker then)12 3513 1 1332 3480 t
(searches the executable \256le and other shared objects as usual.)9 2701 1 1332 3600 t
10 CW f
(DT_REL)540 3780 w
10 PA f
(This element is similar to)4 1108 1 1332 3780 t
10 CW f
(DT_RELA)2465 3780 w
10 PA f
(, except its table has implicit addends, such as)8 2022 1 2893 3780 t
10 CW f
(Elf32_Rel)1332 3900 w
10 PA f
( this element is present, the dynamic structure)7 2039( If)1 117(for the 32-bit \256le class.)4 987 3 1905 3900 t
(must also have)2 661 1 1332 4020 t
10 CW f
(DT_RELSZ)2018 4020 w
10 PA f
(and)2531 4020 w
10 CW f
(DT_RELENT)2725 4020 w
10 PA f
(elements.)3298 4020 w
10 CW f
(DT_RELSZ)540 4200 w
10 PA f
(This element holds the total size, in bytes, of the)9 2118 1 1332 4200 t
10 CW f
(DT_REL)3475 4200 w
10 PA f
(relocation table.)1 706 1 3868 4200 t
10 CW f
(DT_RELENT)540 4380 w
10 PA f
(This element holds the size, in bytes, of the)8 1893 1 1332 4380 t
10 CW f
(DT_REL)3250 4380 w
10 PA f
(relocation entry.)1 726 1 3643 4380 t
10 CW f
(DT_PLTREL)540 4560 w
10 PA f
(This member speci\256es the type of relocation entry to which the procedure linkage table)13 3852 1 1332 4560 t
(refers. The)1 493 1 1332 4680 t
10 CW f
(d_val)1850 4680 w
10 PA f
(member holds)1 637 1 2183 4680 t
10 CW f
(DT_REL)2845 4680 w
10 PA f
(or)3238 4680 w
10 CW f
(DT_RELA)3358 4680 w
10 PA f
( relocations)1 508( All)1 186(, as appropriate.)2 717 3 3786 4680 t
(in a procedure linkage table must use the same relocation.)9 2565 1 1332 4800 t
10 CW f
(DT_DEBUG)540 4980 w
10 PA f
( contents are not speci\256ed for the ABI; pro-)8 1901( Its)1 159(This member is used for debugging.)5 1596 3 1332 4980 t
(grams that access this entry are not ABI-conforming.)7 2323 1 1332 5100 t
10 CW f
(DT_TEXTREL)540 5280 w
10 PA f
(This member's absence signi\256es that no relocation entry should cause a modi\256cation to)12 3850 1 1332 5280 t
(a non-writable segment, as speci\256ed by the segment permissions in the program header)12 3880 1 1332 5400 t
( this member is present, one or more relocation entries might request)11 3046(table. If)1 357 2 1332 5520 t
(modi\256cations to a non-writable segment, and the dynamic linker can prepare accord-)11 3766 1 1332 5640 t
(ingly.)1332 5760 w
10 CW f
(DT_JMPREL)540 5940 w
10 PA f
(If present, this entries's)3 1026 1 1332 5940 t
10 CW f
(d_ptr)2383 5940 w
10 PA f
(member holds the address of relocation entries associ-)7 2392 1 2716 5940 t
( these relocation entries lets the)5 1384( Separating)1 527(ated solely with the procedure linkage table.)6 1965 3 1332 6060 t
( If)1 117(dynamic linker ignore them during process initialization, if lazy binding is enabled.)11 3693 2 1332 6180 t
(this entry is present, the related entries of types)8 2095 1 1332 6300 t
10 CW f
(DT_PLTRELSZ)3452 6300 w
10 PA f
(and)4145 6300 w
10 CW f
(DT_PLTREL)4339 6300 w
10 PA f
(must)4912 6300 w
(also be present.)2 683 1 1332 6420 t
10 CW f
(DT_LOPROC)540 6600 w
10 PA f
(through)1105 6600 w
10 CW f
(DT_HIPROC)1490 6600 w
10 PA f
(Values in this inclusive range are reserved for processor-speci\256c semantics.)9 3317 1 1332 6720 t
9 R f
(2-14)540 7324 w
9 PB f
( Interface Standards \(TIS\))3 1059( Tool)1 535(Portable Formats Speci\256cation, Version 1.1)4 1758 3 1868 7324 t
cleartomark
showpage
restore
%%EndPage: 14 45
%%Page: 15 46
save
mark
46 pagesetup
9 HB f
3841 540 658 540 Dl
(ELF: Executable and Linkable Format)4 1605 1 3913 540 t
10 PA f
(Except for the)2 615 1 658 1020 t
10 CW f
(DT_NULL)1298 1020 w
10 PA f
(element at the end of the array, and the relative order of)11 2477 1 1751 1020 t
10 CW f
(DT_NEEDED)4253 1020 w
10 PA f
(elements,)4826 1020 w
( values not appearing in the table are reserved.)8 2069( Tag)1 217(entries may appear in any order.)5 1445 3 658 1140 t
14 HB f
(Shared Object Dependencies)2 1936 1 658 1520 t
10 PA f
(When the link editor processes an archive library, it extracts library members and copies them into the)16 4519 1 658 1760 t
( statically linked services are available during execution without involving the)10 3456( These)1 307(output object \256le.)2 772 3 658 1880 t
( objects also provide services, and the dynamic linker must attach the proper)12 3386( Shared)1 360(dynamic linker.)1 696 3 658 2000 t
( executable and shared object \256les describe)6 1890( Thus)1 271(shared object \256les to the process image for execution.)8 2346 3 658 2120 t
(their speci\256c dependencies.)2 1216 1 658 2240 t
(When the dynamic linker creates the memory segments for an object \256le, the dependencies \(recorded in)15 4576 1 658 2420 t
10 CW f
(DT_NEEDED)658 2540 w
10 PA f
(entries of the dynamic structure\) tell what shared objects are needed to supply the)13 3627 1 1231 2540 t
( repeatedly connecting referenced shared objects and their dependencies, the)9 3394( By)1 167(program's services.)1 858 3 658 2660 t
( resolving symbolic references, the dynamic)5 1935( When)1 314(dynamic linker builds a complete process image.)6 2154 3 658 2780 t
( is, it \256rst looks at the symbol table of)9 1646( That)1 252(linker examines the symbol tables with a breadth-\256rst search.)8 2710 3 658 2900 t
(the executable program itself, then at the symbol tables of the)10 2712 1 658 3020 t
10 CW f
(DT_NEEDED)3395 3020 w
10 PA f
(entries \(in order\), then at the)5 1264 1 3968 3020 t
(second level)1 543 1 658 3140 t
10 CW f
(DT_NEEDED)1226 3140 w
10 PA f
( object \256les must be readable by the process; other)9 2210( Shared)1 360(entries, and so on.)3 802 3 1799 3140 t
(permissions are not required.)3 1299 1 658 3260 t
 /oldm /m load def /m {} def
 gsave newpath 658 -3420 moveto
 928 -3420 lineto
 928 -3720 lineto
 658 -3720 lineto
 closepath 0.999 setgray fill grestore
 /m /oldm load def
7 HB f
928 3420 658 3420 Dl
928 3720 928 3420 Dl
658 3720 928 3720 Dl
658 3420 658 3720 Dl
799 3840 799 3720 Dl
(NOTE)700 3588 w
9 H f
(Even when a shared object is referenced multiple times in the dependency list, the dynamic linker will)16 4025 1 1018 3480 t
(connect the object only once to the process.)7 1755 1 1018 3580 t
10 PA f
(Names in the dependency list are copies either of the)9 2336 1 658 4040 t
10 CW f
(DT_SONAME)3019 4040 w
10 PA f
(strings or the path names of the shared)7 1722 1 3592 4040 t
( example, if the link editor builds an executable \256le using one)11 2709( For)1 201(objects used to build the object \256le.)6 1543 3 658 4160 t
(shared object with a)3 885 1 658 4280 t
10 CW f
(DT_SONAME)1568 4280 w
10 PA f
(entry of)1 348 1 2141 4280 t
10 CW f
(lib1)2514 4280 w
10 PA f
(and another shared object library with the path name)8 2354 1 2787 4280 t
10 CW f
(/usr/lib/lib2)658 4400 w
10 PA f
(, the executable \256le will contain)5 1391 1 1446 4400 t
10 CW f
(lib1)2862 4400 w
10 PA f
(and)3135 4400 w
10 CW f
(/usr/lib/lib2)3329 4400 w
10 PA f
(in its dependency list.)3 966 1 4142 4400 t
(If a shared object name has one or more slash \()10 2059 1 658 4580 t
10 CW f
(/)2725 4580 w
10 PA f
(\) characters anywhere in the name, such as)7 1889 1 2793 4580 t
10 CW f
(/usr/lib/lib2)658 4700 w
10 PA f
(above or)1 384 1 1471 4700 t
10 CW f
(directory/file)1880 4700 w
10 PA f
(, the dynamic linker uses that string directly as the path)10 2456 1 2728 4700 t
( the name has no slashes, such as)7 1453(name. If)1 386 2 658 4820 t
10 CW f
(lib1)2522 4820 w
10 PA f
(above, three facilities specify shared object path search-)7 2442 1 2795 4820 t
(ing, with the following precedence.)4 1561 1 658 4940 t
10 S f
()816 5120 w
816 5120 m
50 build_bx
866 5120 m
10 PA f
(First, the dynamic array tag)4 1225 1 932 5120 t
10 CW f
(DT_RPATH)2182 5120 w
10 PA f
(may give a string that holds a list of directories, separated)10 2557 1 2695 5120 t
(by colons \()2 477 1 932 5240 t
10 CW f
(:)1417 5240 w
10 PA f
( example, the string)3 872(\). For)1 259 2 1485 5240 t
10 CW f
(/home/dir/lib:/home/dir2/lib:)2641 5240 w
10 PA f
(tells the dynamic)2 756 1 4414 5240 t
(linker to search \256rst the directory)5 1476 1 932 5360 t
10 CW f
(/home/dir/lib)2433 5360 w
10 PA f
(, then)1 247 1 3221 5360 t
10 CW f
(/home/dir2/lib)3493 5360 w
10 PA f
(, and then the current)4 953 1 4341 5360 t
(directory to \256nd dependencies.)3 1379 1 932 5480 t
10 S f
()816 5660 w
816 5660 m
50 build_bx
866 5660 m
10 PA f
(Second, a variable called)3 1087 1 932 5660 t
10 CW f
(LD_LIBRARY_PATH)2044 5660 w
10 PA f
(in the process environment [see)4 1399 1 2977 5660 t
10 CW f
(exec)4401 5660 w
10 PA f
(\(BA)4649 5660 w
10 S f
(_)4821 5660 w
10 PA f
(OS\)] may)1 417 1 4871 5660 t
(hold a list of directories as above, optionally followed by a semicolon \()12 3113 1 932 5780 t
10 CW f
(;)4053 5780 w
10 PA f
(\) and another directory list.)4 1208 1 4121 5780 t
(The following values would be equivalent to the previous example:)9 2979 1 932 5900 t
8 S f
()1062 6080 w
cleartomark restore
%%BeginGlobal
/build_sq {
    pop
    size 2 div /side exch def
    currentpoint
    newpath
    moveto
    0 side rlineto
    side 0 rlineto
    0 side neg rlineto
    closepath
    font B eq {fill} {stroke} ifelse
} def
%%EndGlobal
save mark
8 S f
1062 6080 m
40 build_sq
1102 6080 m
10 CW f
(LD_LIBRARY_PATH=/home/dir/lib:/home/dir2/lib:)1168 6080 w
8 S f
()1062 6260 w
1062 6260 m
40 build_sq
1102 6260 m
10 CW f
(LD_LIBRARY_PATH=/home/dir/lib;/home/dir2/lib:)1168 6260 w
8 S f
()1062 6440 w
1062 6440 m
40 build_sq
1102 6440 m
10 CW f
(LD_LIBRARY_PATH=/home/dir/lib:/home/dir2/lib:;)1168 6440 w
10 PA f
(All)932 6740 w
10 CW f
(LD_LIBRARY_PATH)1093 6740 w
10 PA f
(directories are searched after those from)5 1779 1 2026 6740 t
10 CW f
(DT_RPATH)3830 6740 w
10 PA f
( some pro-)2 471(. Although)1 502 2 4318 6740 t
(grams \(such as the link editor\) treat the lists before and after the semicolon differently, the dynamic)16 4390 1 932 6860 t
( the dynamic linker accepts the semicolon notation, with the)9 2656( Nevertheless,)1 650(linker does not.)2 687 3 932 6980 t
9 PB f
( 1.1)1 136( Version)1 371( Formats Speci\256cation,)2 929( Portable)1 851(Tool Interface Standards \(TIS\))3 1249 5 658 7324 t
9 R f
(2-15)5173 7324 w
cleartomark
showpage
restore
%%EndPage: 15 46
%%Page: 16 47
save
mark
47 pagesetup
9 HB f
(ELF: Executable and Linkable Format)4 1605 1 540 540 t
5400 540 2217 540 Dl
10 PA f
(semantics described above.)2 1201 1 814 1020 t
10 S f
()698 1200 w
698 1200 m
50 build_bx
748 1200 m
10 PA f
(Finally, if the other two groups of directories fail to locate the desired library, the dynamic linker)16 4273 1 814 1200 t
(searches)814 1320 w
10 CW f
(/usr/lib)1211 1320 w
10 PA f
(.)1699 1320 w
 /oldm /m load def /m {} def
 gsave newpath 540 -1540 moveto
 810 -1540 lineto
 810 -1840 lineto
 540 -1840 lineto
 closepath 0.999 setgray fill grestore
 /m /oldm load def
7 HB f
810 1540 540 1540 Dl
810 1840 810 1540 Dl
540 1840 810 1840 Dl
540 1540 540 1840 Dl
681 1960 681 1840 Dl
(NOTE)582 1708 w
9 H f
(For security, the dynamic linker ignores environmental search speci\256cations \(such as)10 3380 1 900 1600 t
9 CW f
(LD_LIBRARY_PATH)900 1700 w
9 H f
( does, however, search)3 930( It)1 100(\) for set-user and set-group ID programs.)6 1635 3 1717 1700 t
9 CW f
(DT_RPATH)4407 1700 w
9 H f
(directories and)1 590 1 900 1800 t
9 CW f
(/usr/lib)1515 1800 w
9 H f
(.)1954 1800 w
14 HB f
(Global Offset Table)2 1281 1 540 2360 t
10 PA f
( offset tables)2 551( Global)1 344(Position-independent code cannot, in general, contain absolute virtual addresses.)8 3583 3 540 2600 t
(hold absolute addresses in private data, thus making the addresses available without compromising the)13 4589 1 540 2720 t
( program references its global offset table)6 1825( A)1 128(position-independence and sharability of a program's text.)6 2593 3 540 2840 t
(using position-independent addressing and extracts absolute values, thus redirecting position-)9 4179 1 540 2960 t
(independent references to absolute locations.)4 1991 1 540 3080 t
(Initially, the global offset table holds information as required by its relocation entries [see ``Relocation'' in)15 4658 1 540 3260 t
( the system creates memory segments for a loadable object \256le, the dynamic linker processes)14 4075( After)1 282(Part 1].)1 316 3 540 3380 t
(the relocation entries, some of which will be type)8 2166 1 540 3500 t
10 CW f
(R_386_GLOB_DAT)2731 3500 w
10 PA f
(referring to the global offset table.)5 1502 1 3604 3500 t
(The dynamic linker determines the associated symbol values, calculates their absolute addresses, and sets)13 4663 1 540 3620 t
( the absolute addresses are)4 1183( Although)1 477(the appropriate memory table entries to the proper values.)8 2592 3 540 3740 t
(unknown when the link editor builds an object \256le, the dynamic linker knows the addresses of all)16 4305 1 540 3860 t
(memory segments and can thus calculate the absolute addresses of the symbols contained therein.)13 4330 1 540 3980 t
(If a program requires direct access to the absolute address of a symbol, that symbol will have a global)18 4480 1 540 4160 t
( the executable \256le and shared objects have separate global offset tables, a)12 3245( Because)1 403(offset table entry.)2 769 3 540 4280 t
( dynamic linker processes all the global offset table)8 2247( The)1 217(symbol's address may appear in several tables.)6 2073 3 540 4400 t
(relocations before giving control to any code in the process image, thus ensuring the absolute addresses)15 4577 1 540 4520 t
(are available during execution.)3 1365 1 540 4640 t
(The table's entry zero is reserved to hold the address of the dynamic structure, referenced with the sym-)17 4600 1 540 4820 t
(bol)540 4940 w
10 CW f
(_DYNAMIC)704 4940 w
10 PA f
( allows a program, such as the dynamic linker, to \256nd its own dynamic structure)14 3562(. This)1 265 2 1192 4940 t
( is especially important for the dynamic linker,)7 2065( This)1 240(without having yet processed its relocation entries.)6 2253 3 540 5060 t
( the)1 164( On)1 187(because it must initialize itself without relying on other programs to relocate its memory image.)14 4235 3 540 5180 t
( ``Procedure)1 562(32-bit Intel Architecture, entries one and two in the global offset table also are reserved.)14 3862 2 540 5300 t
(Linkage Table'' below describes them.)4 1688 1 540 5420 t
(The system may choose different memory segment addresses for the same shared object in different pro-)15 4622 1 540 5600 t
(grams; it may even choose different library addresses for different executions of the same program.)14 4384 1 540 5720 t
( long)1 223( As)1 170(Nonetheless, memory segments do not change addresses once the process image is established.)12 4206 3 540 5840 t
(as a process exists, its memory segments reside at \256xed virtual addresses.)11 3242 1 540 5960 t
( the 32-bit Intel Architecture,)4 1271( For)1 201(A global offset table's format and interpretation are processor-speci\256c.)8 3113 3 540 6140 t
(the symbol)1 489 1 540 6260 t
10 CW f
(_GLOBAL_OFFSET_TABLE_)1054 6260 w
10 PA f
(may be used to access the table.)6 1395 1 2347 6260 t
9 R f
(2-16)540 7324 w
9 PB f
( Interface Standards \(TIS\))3 1059( Tool)1 535(Portable Formats Speci\256cation, Version 1.1)4 1758 3 1868 7324 t
cleartomark
showpage
restore
%%EndPage: 16 47
%%Page: 17 48
save
mark
48 pagesetup
9 HB f
3841 540 658 540 Dl
(ELF: Executable and Linkable Format)4 1605 1 3913 540 t
8 HB f
5338 1000 658 1000 Dl
9 HB f
( Offset Table)2 545( Global)1 330(Figure 2-11:)1 510 3 658 1100 t
10 CW f
( _GLOBAL_OFFSET_TABLE_[];)1 1860(extern Elf32_Addr)1 1020 2 1450 1472 t
4474 1352 1378 1352 Dl
4474 1604 4474 1352 Dl
1378 1604 4474 1604 Dl
1378 1352 1378 1604 Dl
8 PA f
5338 1904 658 1904 Dl
10 PA f
(The symbol)1 517 1 658 2084 t
10 CW f
(_GLOBAL_OFFSET_TABLE_)1200 2084 w
10 PA f
(may reside in the middle of the)6 1381 1 2493 2084 t
10 CW f
(.got)3899 2084 w
10 PA f
(section, allowing both)2 974 1 4172 2084 t
(negative and non-negative ``subscripts'' into the array of addresses.)8 2985 1 658 2204 t
14 HB f
(Procedure Linkage Table)2 1664 1 658 2584 t
10 PA f
(Much as the global offset table redirects position-independent address calculations to absolute locations,)12 4609 1 658 2824 t
( link)1 197( The)1 217(the procedure linkage table redirects position-independent function calls to absolute locations.)10 4171 3 658 2944 t
(editor cannot resolve execution transfers \(such as function calls\) from one executable or shared object to)15 4580 1 658 3064 t
( the link editor arranges to have the program transfer control to entries in the pro-)15 3622(another. Consequently,)1 1056 2 658 3184 t
( the SYSTEM V architecture, procedure linkage tables reside in shared text, but)12 3485( On)1 187(cedure linkage table.)2 917 3 658 3304 t
( dynamic linker determines the destinations')5 1971( The)1 217(they use addresses in the private global offset table.)8 2279 3 658 3424 t
( dynamic linker)2 696( The)1 217(absolute addresses and modi\256es the global offset table's memory image accordingly.)10 3744 3 658 3544 t
(thus can redirect the entries without compromising the position-independence and sharability of the)12 4441 1 658 3664 t
( \256les and shared object \256les have separate procedure linkage tables.)10 2983( Executable)1 530(program's text.)1 675 3 658 3784 t
8 HB f
5338 3944 658 3944 Dl
9 HB f
( Procedure Linkage Table)3 1095( Absolute)1 435(Figure 2-12:)1 510 3 658 4044 t
10 CW f
(.PLT0:pushl)2169 4416 w
10 PI f
(got)2889 4416 w
10 S f
(_)3016 4416 w
10 PI f
(plus)3066 4416 w
10 S f
(_)3239 4416 w
10 PI f
(4)3289 4416 w
10 CW f
(jmp *)1 420 1 2529 4536 t
10 PI f
(got)2949 4536 w
10 S f
(_)3076 4536 w
10 PI f
(plus)3126 4536 w
10 S f
(_)3299 4536 w
10 PI f
(8)3349 4536 w
10 CW f
(nop; nop)1 480 1 2529 4656 t
(nop; nop)1 480 1 2529 4776 t
(.PLT1:jmp *)1 780 1 2169 4896 t
10 PI f
(name1)2949 4896 w
10 S f
(_)3216 4896 w
10 PI f
(in)3266 4896 w
10 S f
(_)3350 4896 w
10 PI f
(GOT)3400 4896 w
10 CW f
(pushl $)1 420 1 2529 5016 t
10 PI f
(offset)2949 5016 w
10 CW f
(@PC)3160 5016 w
(.PLT2:jmp *)1 780 1 2169 5136 t
10 PI f
(name2)2949 5136 w
10 S f
(_)3216 5136 w
10 PI f
(in)3266 5136 w
10 S f
(_)3350 5136 w
10 PI f
(GOT)3400 5136 w
10 CW f
(push $)1 420 1 2529 5256 t
10 PI f
(offset)2949 5256 w
10 CW f
(jmp .PLT0@PC)1 840 1 2529 5376 t
(...)2529 5496 w
3755 4296 2097 4296 Dl
3755 5628 3755 4296 Dl
2097 5628 3755 5628 Dl
2097 4296 2097 5628 Dl
8 PI f
5338 5928 658 5928 Dl
9 PB f
( 1.1)1 136( Version)1 371( Formats Speci\256cation,)2 929( Portable)1 851(Tool Interface Standards \(TIS\))3 1249 5 658 7324 t
9 R f
(2-17)5173 7324 w
cleartomark
showpage
restore
%%EndPage: 17 48
%%Page: 18 49
save
mark
49 pagesetup
9 HB f
(ELF: Executable and Linkable Format)4 1605 1 540 540 t
5400 540 2217 540 Dl
8 HB f
5220 1000 540 1000 Dl
9 HB f
( Procedure Linkage Table)3 1095( Position-Independent)1 970(Figure 2-13:)1 510 3 540 1100 t
10 CW f
(.PLT0:pushl 4\(%ebx\))1 1140 1 1932 1472 t
(jmp *8\(%ebx\))1 840 1 2292 1592 t
(nop; nop)1 480 1 2292 1712 t
(nop; nop)1 480 1 2292 1832 t
(.PLT1:jmp *name1@GOT\(%ebx\))1 1680 1 1932 1952 t
(pushl $)1 420 1 2292 2072 t
10 PI f
(offset)2712 2072 w
10 CW f
(jmp .PLT0@PC)1 840 1 2292 2192 t
(.PLT2:jmp *name2@GOT\(%ebx\))1 1680 1 1932 2312 t
(pushl $)1 420 1 2292 2432 t
10 PI f
(offset)2712 2432 w
10 CW f
(jmp .PLT0@PC)1 840 1 2292 2552 t
(...)2292 2672 w
3756 1352 1860 1352 Dl
3756 2804 3756 1352 Dl
1860 2804 3756 2804 Dl
1860 1352 1860 2804 Dl
8 PI f
5220 3104 540 3104 Dl
 /oldm /m load def /m {} def
 gsave newpath 540 -3324 moveto
 810 -3324 lineto
 810 -3624 lineto
 540 -3624 lineto
 closepath 0.999 setgray fill grestore
 /m /oldm load def
7 HB f
810 3324 540 3324 Dl
810 3624 810 3324 Dl
540 3624 810 3624 Dl
540 3324 540 3624 Dl
681 3744 681 3624 Dl
(NOTE)582 3492 w
9 H f
(As the \256gures show, the procedure linkage table instructions use different operand addressing modes)13 4035 1 900 3384 t
( their interfaces to the dynamic linker)6 1465( Nonetheless,)1 575(for absolute code and for position-independent code.)6 2100 3 900 3484 t
(are the same.)2 550 1 900 3584 t
10 PA f
(Following the steps below, the dynamic linker and the program ``cooperate'' to resolve symbolic refer-)14 4532 1 540 3944 t
(ences through the procedure linkage table and the global offset table.)10 3052 1 540 4064 t
( \256rst creating the memory image of the program, the dynamic linker sets the second and the)16 4065( When)1 330(1 .)1 83 3 679 4244 t
( below explain more about these)5 1434( Steps)1 286(third entries in the global offset table to special values.)9 2403 3 828 4364 t
(values.)828 4484 w
( the procedure linkage table is position-independent, the address of the global offset table must)14 4204( If)1 133(2 .)1 83 3 679 4664 t
(reside in)1 380 1 828 4784 t
10 CW f
(%ebx)1233 4784 w
10 PA f
( shared object \256le in the process image has its own procedure linkage table,)13 3320(. Each)1 288 2 1481 4784 t
( Con-)1 267(and control transfers to a procedure linkage table entry only from within the same object \256le.)15 4106 2 828 4904 t
(sequently, the calling function is responsible for setting the global offset table base register before)14 4295 1 828 5024 t
(calling the procedure linkage table entry.)5 1816 1 828 5144 t
( illustration, assume the program calls)5 1689( For)1 217(3 .)1 83 3 679 5324 t
10 CW f
(name1)2693 5324 w
10 PA f
(, which transfers control to the label)6 1585 1 3001 5324 t
10 CW f
(.PLT1)4611 5324 w
10 PA f
(.)4919 5324 w
( \256rst instruction jumps to the address in the global offset table entry for)13 3148( The)1 233(4 .)1 83 3 679 5504 t
10 CW f
(name1)4168 5504 w
10 PA f
( the)1 164(. Initially,)1 447 2 4476 5504 t
(global offset table holds the address of the following)8 2315 1 828 5624 t
10 CW f
(pushl)3168 5624 w
10 PA f
(instruction, not the real address of)5 1515 1 3501 5624 t
10 CW f
(name1)828 5744 w
10 PA f
(.)1136 5744 w
( the program pushes a relocation offset \()7 1781( Consequently,)1 705(5 .)1 83 3 679 5924 t
10 PI f
(offset)3248 5924 w
10 PA f
( relocation offset is a)4 906( The)1 217(\) on the stack.)3 610 3 3459 5924 t
( designated relocation entry will have)5 1669( The)1 217(32-bit, non-negative byte offset into the relocation table.)7 2463 3 828 6044 t
(type)828 6164 w
10 CW f
(R_386_JMP_SLOT)1050 6164 w
10 PA f
(, and its offset will specify the global offset table entry used in the previous)14 3308 1 1898 6164 t
10 CW f
(jmp)828 6284 w
10 PA f
( relocation entry also contains a symbol table index, thus telling the dynamic)12 3384(instruction. The)1 723 2 1041 6284 t
(linker what symbol is being referenced,)5 1744 1 828 6404 t
10 CW f
(name1)2597 6404 w
10 PA f
(in this case.)2 508 1 2930 6404 t
( pushing the relocation offset, the program then jumps to)9 2523( After)1 298(6 .)1 83 3 679 6584 t
10 CW f
(.PLT0)3608 6584 w
10 PA f
(, the \256rst entry in the pro-)6 1139 1 3916 6584 t
( The)1 217(cedure linkage table.)2 917 2 828 6704 t
10 CW f
(pushl)1987 6704 w
10 PA f
(instruction places the value of the second global offset table entry)10 2889 1 2320 6704 t
(\()828 6824 w
10 PI f
(got)861 6824 w
10 S f
(_)988 6824 w
10 PI f
(plus)1038 6824 w
10 S f
(_)1211 6824 w
10 PI f
(4)1261 6824 w
10 PA f
(or)1336 6824 w
10 CW f
(4\(%ebx\))1491 6824 w
10 PA f
(\) on the stack, thus giving the dynamic linker one word of identifying)12 3075 1 1911 6824 t
( program then jumps to the address in the third global offset table entry)13 3170(information. The)1 770 2 828 6944 t
9 R f
(2-18)540 7324 w
9 PB f
( Interface Standards \(TIS\))3 1059( Tool)1 535(Portable Formats Speci\256cation, Version 1.1)4 1758 3 1868 7324 t
cleartomark
showpage
restore
%%EndPage: 18 49
%%Page: 19 50
save
mark
50 pagesetup
9 HB f
3841 540 658 540 Dl
(ELF: Executable and Linkable Format)4 1605 1 3913 540 t
10 PA f
(\()946 1020 w
10 PI f
(got)979 1020 w
10 S f
(_)1106 1020 w
10 PI f
(plus)1156 1020 w
10 S f
(_)1329 1020 w
10 PI f
(8)1379 1020 w
10 PA f
(or)1454 1020 w
10 CW f
(8\(%ebx\))1609 1020 w
10 PA f
(\), which transfers control to the dynamic linker.)7 2103 1 2029 1020 t
( the dynamic linker receives control, it unwinds the stack, looks at the designated relocation)14 4057( When)1 330(7 .)1 83 3 797 1200 t
(entry, \256nds the symbol's value, stores the ``real'' address for)9 2659 1 946 1320 t
10 CW f
(name1)3630 1320 w
10 PA f
(in its global offset table entry,)5 1309 1 3963 1320 t
(and transfers control to the desired destination.)6 2096 1 946 1440 t
( executions of the procedure linkage table entry will transfer directly to)11 3145( Subsequent)1 579(8 .)1 83 3 797 1620 t
10 CW f
(name1)4629 1620 w
10 PA f
(, without)1 401 1 4937 1620 t
( is, the)2 285( That)1 252(calling the dynamic linker a second time.)6 1811 3 946 1740 t
10 CW f
(jmp)3319 1740 w
10 PA f
(instruction at)1 589 1 3532 1740 t
10 CW f
(.PLT1)4146 1740 w
10 PA f
(will transfer to)2 652 1 4479 1740 t
10 CW f
(name1)946 1860 w
10 PA f
(, instead of ``falling through'' to the)6 1567 1 1254 1860 t
10 CW f
(pushl)2846 1860 w
10 PA f
(instruction.)3179 1860 w
(The)658 2100 w
10 CW f
(LD_BIND_NOW)850 2100 w
10 PA f
( its value is non-null,)4 923( If)1 117(environment variable can change dynamic linking behavior.)6 2661 3 1543 2100 t
(the dynamic linker evaluates procedure linkage table entries before transferring control to the program.)13 4582 1 658 2220 t
(That is, the dynamic linker processes relocation entries of type)9 2753 1 658 2340 t
10 CW f
(R_386_JMP_SLOT)3436 2340 w
10 PA f
(during process initiali-)2 1004 1 4309 2340 t
( the dynamic linker evaluates procedure linkage table entries lazily, delaying symbol)11 3751(zation. Otherwise,)1 835 2 658 2460 t
(resolution and relocation until the \256rst execution of a table entry.)10 2873 1 658 2580 t
 /oldm /m load def /m {} def
 gsave newpath 658 -2740 moveto
 928 -2740 lineto
 928 -3040 lineto
 658 -3040 lineto
 closepath 0.999 setgray fill grestore
 /m /oldm load def
7 HB f
928 2740 658 2740 Dl
928 3040 928 2740 Dl
658 3040 928 3040 Dl
658 2740 658 3040 Dl
799 3160 799 3040 Dl
(NOTE)700 2908 w
9 H f
(Lazy binding generally improves overall application performance, because unused symbols do not incur)12 4120 1 1018 2800 t
( two situations make lazy binding undesirable for some)8 2180( Nevertheless,)1 600(the dynamic linking overhead.)3 1190 3 1018 2900 t
( the initial reference to a shared object function takes longer than subsequent calls,)13 3300(applications. First,)1 750 2 1018 3000 t
( applications cannot tolerate)3 1120( Some)1 285(because the dynamic linker intercepts the call to resolve the symbol.)10 2715 3 1018 3100 t
( if an error occurs and the dynamic linker cannot resolve the symbol, the)13 2870( Second,)1 380(this unpredictability.)1 790 3 1018 3200 t
( Once)1 265( lazy binding, this might occur at arbitrary times.)8 1900( Under)1 295(dynamic linker will terminate the program.)5 1660 4 1018 3300 t
( turning off lazy binding, the dynamic)6 1460( By)1 155(again, some applications cannot tolerate this unpredictability.)6 2425 3 1018 3400 t
(linker forces the failure to occur during process initialization, before the application receives control.)13 3945 1 1018 3500 t
14 HB f
(Hash Table)1 746 1 658 3940 t
10 PA f
(A hash table of)3 664 1 658 4180 t
10 CW f
(Elf32_Word)1347 4180 w
10 PA f
( appear below to help explain)5 1312( Labels)1 335(objects supports symbol table access.)4 1627 3 1980 4180 t
(the hash table organization, but they are not part of the speci\256cation.)11 3040 1 658 4300 t
8 HB f
5338 4460 658 4460 Dl
9 HB f
( Hash Table)2 505( Symbol)1 375(Figure 2-14:)1 510 3 658 4560 t
10 S f
(_ _______________________)1 1152 1 2422 4652 t
10 CW f
(nbucket)2788 4772 w
10 S f
(_ _______________________)1 1152 1 2422 4792 t
10 CW f
(nchain)2818 4912 w
10 S f
(_ _______________________)1 1152 1 2422 4932 t
10 CW f
(bucket[0])2728 5052 w
(. . .)2 300 1 2848 5172 t
(bucket[nbucket - 1])2 1052 1 2472 5292 t
10 S f
(_ _______________________)1 1152 1 2422 5312 t
10 CW f
(chain[0])2758 5432 w
(. . .)2 300 1 2848 5552 t
(chain[nchain - 1])2 932 1 2532 5672 t
10 S f
( \347)1 -1152(_ _______________________)1 1152 2 2422 5692 t
(\347)2422 5652 w
(\347)2422 5552 w
(\347)2422 5452 w
(\347)2422 5352 w
(\347)2422 5252 w
(\347)2422 5152 w
(\347)2422 5052 w
(\347)2422 4952 w
(\347)2422 4852 w
(\347)2422 4752 w
(\347)3574 5692 w
(\347)3574 5652 w
(\347)3574 5552 w
(\347)3574 5452 w
(\347)3574 5352 w
(\347)3574 5252 w
(\347)3574 5152 w
(\347)3574 5052 w
(\347)3574 4952 w
(\347)3574 4852 w
(\347)3574 4752 w
8 PA f
5338 5884 658 5884 Dl
10 PA f
(The)658 6124 w
10 CW f
(bucket)850 6124 w
10 PA f
(array contains)1 630 1 1243 6124 t
10 CW f
(nbucket)1898 6124 w
10 PA f
(entries, and the)2 681 1 2351 6124 t
10 CW f
(chain)3057 6124 w
10 PA f
(array contains)1 630 1 3390 6124 t
10 CW f
(nchain)4045 6124 w
10 PA f
(entries; indexes)1 686 1 4438 6124 t
( Both)1 257(start at 0.)2 406 2 658 6244 t
10 CW f
(bucket)1346 6244 w
10 PA f
(and)1739 6244 w
10 CW f
(chain)1933 6244 w
10 PA f
( table entries parallel the symbol)5 1437( Chain)1 316(hold symbol table indexes.)3 1181 3 2266 6244 t
( number of symbol table entries should equal)7 1998(table. The)1 457 2 658 6364 t
10 CW f
(nchain)3138 6364 w
10 PA f
(; so symbol table indexes also select)6 1570 1 3506 6364 t
( hashing function \(shown below\) accepts a symbol name and returns a value that)13 3575( A)1 128(chain table entries.)2 827 3 658 6484 t
(may be used to compute a)5 1159 1 658 6604 t
10 CW f
(bucket)1842 6604 w
10 PA f
( if the hashing function returns the value)7 1800(index. Consequently,)1 962 2 2235 6604 t
10 PI f
(x)5022 6604 w
10 PA f
(for)5097 6604 w
(some name,)1 527 1 658 6724 t
10 CW f
(bucket[)1245 6724 w
10 PI f
(x)1665 6724 w
10 CW f
(%nbucket])1715 6724 w
10 PA f
(gives an index,)2 662 1 2280 6724 t
10 PI f
(y)2967 6724 w
10 PA f
( If)1 117(, into both the symbol table and the chain table.)9 2092 2 3025 6724 t
(the symbol table entry is not the one desired,)8 1985 1 658 6844 t
10 CW f
(chain[)2703 6844 w
10 PI f
(y)3063 6844 w
10 CW f
(])3113 6844 w
10 PA f
(gives the next symbol table entry with the same)8 2106 1 3198 6844 t
( can follow the)3 650( One)1 235(hash value.)1 501 3 658 6964 t
10 CW f
(chain)2069 6964 w
10 PA f
(links until either the selected symbol table entry holds the desired)10 2909 1 2402 6964 t
9 PB f
( 1.1)1 136( Version)1 371( Formats Speci\256cation,)2 929( Portable)1 851(Tool Interface Standards \(TIS\))3 1249 5 658 7324 t
9 R f
(2-19)5173 7324 w
cleartomark
showpage
restore
%%EndPage: 19 50
%%Page: 20 51
save
mark
51 pagesetup
9 HB f
(ELF: Executable and Linkable Format)4 1605 1 540 540 t
5400 540 2217 540 Dl
10 PA f
(name or the)2 528 1 540 1020 t
10 CW f
(chain)1093 1020 w
10 PA f
(entry contains the value)3 1061 1 1426 1020 t
10 CW f
(STN_UNDEF)2512 1020 w
10 PA f
(.)3060 1020 w
8 HB f
5220 1180 540 1180 Dl
9 HB f
( Function)1 405( Hashing)1 405(Figure 2-15:)1 510 3 540 1280 t
 /oldm /m load def /m {} def
 gsave 648 -1576 moveto
 648 -3156 828 -3156 180  arcto 4 {pop} repeat
 5148 -3156 5148 -2976 180  arcto 4 {pop} repeat
 5148 -1396 4968 -1396 180  arcto 4 {pop} repeat
 648 -1396 648 -1576 180  arcto 4 {pop} repeat
 0.999 setgray fill grestore 
 /m /oldm load def
8 CW f
648 2976 648 1576 Dl
648 2976 180 0 0 180 Da
4968 3156 828 3156 Dl
4968 3156 0 -180 180 0 Da
5148 1576 5148 2976 Dl
5148 1576 -180 0 0 -180 Da
828 1396 4968 1396 Dl
828 1396 0 180 -180 0 Da
( o n g)3 132( l)1 88(u n s i g n e d)7 356 3 790 1676 t
( n a m e \))5 220( *)1 88( h a r)3 132( c)1 88( n s i g n e d)7 308( u)1 88(e l f _ h a s h \( c o n s t)13 620 7 790 1776 t
({)790 1876 w
( ;)1 44( g)1 88( ,)1 44( = 0)2 176( h)1 192( o n g)3 132( l)1 88(u n s i g n e d)7 356 8 1150 1976 t
( * n a m e \))6 264( \()1 88(w h i l e)4 224 3 1150 2176 t
({)1150 2276 w
( n a m e + + ;)7 308( + *)2 176( \))1 44( 4)1 88( <)1 44( <)1 88( h)1 44(h = \()2 224 8 1510 2376 t
( x f 0 0 0 0 0 0 0 \))10 440( = h & 0)4 352( g)1 44( \()1 88(i f)1 92 5 1510 2476 t
( 4 ;)2 88( 2)1 88( >)1 44( g >)2 176( =)1 44(h ^)1 136 6 1870 2576 t
( g ;)2 88( ~)1 88( =)1 44(h &)1 136 4 1510 2676 t
(})1150 2776 w
( ;)1 44( h)1 88(r e t u r n)5 268 3 1150 2876 t
(})790 2976 w
5220 3284 540 3284 Dl
14 HB f
(Initialization and Termination Functions)3 2638 1 540 3724 t
10 PA f
(After the dynamic linker has built the process image and performed the relocations, each shared object)15 4535 1 540 3964 t
( initialization functions are called in no)6 1722( These)1 307(gets the opportunity to execute some initialization code.)7 2480 3 540 4084 t
(speci\256ed order, but all shared object initializations happen before the executable \256le gains control.)13 4334 1 540 4204 t
(Similarly, shared objects may have termination functions, which are executed with the)11 3812 1 540 4384 t
10 CW f
(atexit)4377 4384 w
10 PA f
(\(BA)4745 4384 w
10 S f
(_)4917 4384 w
10 PA f
(OS\))4967 4384 w
( again, the order in which the)6 1299( Once)1 279(mechanism after the base process begins its termination sequence.)8 2916 3 540 4504 t
(dynamic linker calls termination functions is unspeci\256ed.)6 2530 1 540 4624 t
(Shared objects designate their initialization and termination functions through the)9 3630 1 540 4804 t
10 CW f
(DT_INIT)4195 4804 w
10 PA f
(and)4648 4804 w
10 CW f
(DT_FINI)540 4924 w
10 PA f
( the code)2 397( Typically,)1 489(entries in the dynamic structure, described in ``Dynamic Section'' above.)9 3198 3 993 4924 t
(for these functions resides in the)5 1430 1 540 5044 t
10 CW f
(.init)1995 5044 w
10 PA f
(and)2328 5044 w
10 CW f
(.fini)2522 5044 w
10 PA f
(sections, mentioned in ``Sections'' of Part 1.)6 1911 1 2855 5044 t
 /oldm /m load def /m {} def
 gsave newpath 540 -5204 moveto
 810 -5204 lineto
 810 -5504 lineto
 540 -5504 lineto
 closepath 0.999 setgray fill grestore
 /m /oldm load def
7 HB f
810 5204 540 5204 Dl
810 5504 810 5204 Dl
540 5504 810 5504 Dl
540 5204 540 5504 Dl
681 5624 681 5504 Dl
(NOTE)582 5372 w
9 H f
(Although the)1 505 1 900 5264 t
9 CW f
(atexit)1430 5264 w
9 H f
(\(BA)1761 5264 w
9 S f
(_)1911 5264 w
9 H f
(OS\) termination processing normally will be done, it is not guaranteed to)11 2870 1 1956 5264 t
( particular, the process will not execute the termination process-)9 2540( In)1 125(have executed upon process death.)4 1425 3 900 5364 t
(ing if it calls)3 465 1 900 5464 t
9 CW f
(_exit)1419 5464 w
9 H f
([see)1714 5464 w
9 CW f
(exit)1909 5464 w
9 H f
(\(BA)2132 5464 w
9 S f
(_)2282 5464 w
9 H f
(OS\)] or if the process dies because it received a signal that it nei-)13 2595 1 2327 5464 t
(ther caught nor ignored.)3 955 1 900 5564 t
9 R f
(2-20)540 7324 w
9 PB f
( Interface Standards \(TIS\))3 1059( Tool)1 535(Portable Formats Speci\256cation, Version 1.1)4 1758 3 1868 7324 t
cleartomark
showpage
restore
%%EndPage: 20 51
%%Page: 1 52
save
mark
52 pagesetup
16 HB f
5458 516 658 516 Dl
36 HB f
(3)898 808 w
18 HB f
(C LIBRARY)1 981 1 1378 682 t
9 HB f
5458 1626 658 1626 Dl
13 HB f
(C Library)1 572 1 1378 1740 t
9 H f
(3-1)5170 1740 w
10 H f
(Global Data Symbols)2 942 1 1378 1860 t
9 H f
(3-2)5170 1860 w
9 PB f
( Formats Speci\256cation, Version 1.1)4 1413( Portable)1 759(Tool Interface Standards \(TIS\))3 1249 3 658 7324 t
9 R f
(i)5313 7324 w
cleartomark
showpage
restore
%%EndPage: 1 52
%%Page: 1 53
save
mark
53 pagesetup
16 HB f
5458 516 658 516 Dl
(C Library)1 705 1 658 682 t
10 PA f
(The C library,)2 612 1 658 1042 t
10 CW f
(l i b c)3 225 1 1293 1042 t
10 PA f
(, contains all of the symbols contained in)7 1794 1 1523 1042 t
10 CW f
(l i b s y s)5 335 1 3340 1042 t
10 PA f
(, and, in addition, contains the rou-)6 1553 1 3680 1042 t
( \256rst table lists routines from the ANSI C standard.)9 2250( The)1 217(tines listed in the following two tables.)6 1708 3 658 1162 t
8 HB f
5338 1322 658 1322 Dl
9 HB f
(Figure 3-1:)1 460 1 658 1422 t
9 CW f
(l i b c)3 204 1 1166 1422 t
9 HB f
(Contents, Names without Synonyms)3 1560 1 1393 1422 t
10 CW f
( t r n c m p)6 330( s)1 370( u t c)3 165( p)1 315( s p r i n t)6 330( i)1 315( p u t c)4 220( f)1 370(a b o r t)4 280 9 1623 1614 t
( t r n c p y)6 330( s)1 205( u t c h a r)6 330( p)1 315( s p u n c t)6 330( i)1 315( p u t s)4 220( f)1 480(a b s)2 170 9 1623 1734 t
( t r p b r k)6 330( s)1 370( u t s)3 165( p)1 315( s s p a c e)6 330( i)1 315( r e a d)4 220( f)1 260(a s c t i m e)6 390 9 1623 1854 t
( t r r c h r)6 330( s)1 315( s o r t)4 220( q)1 315( s u p p e r)6 330( i)1 205( r e o p e n)6 330( f)1 425(a t o f)3 225 9 1623 1974 t
( t r s p n)5 275( s)1 315( a i s e)4 220( r)1 260( s x d i g i t)7 385( i)1 315( r e x p)4 220( f)1 425(a t o i)3 225 9 1623 2094 t
( t r s t r)5 275( s)1 370( a n d)3 165( r)1 480( a b s)3 165( l)1 260( s c a n f)5 275( f)1 425(a t o l)3 225 9 1623 2214 t
( t r t o d)5 275( s)1 260( e w i n d)5 275( r)1 425( d e x p)4 220( l)1 315( s e e k)4 220( f)1 260(b s e a r c h)6 390 9 1623 2334 t
( t r t o k)5 275( s)1 315( c a n f)4 220( s)1 480( d i v)3 165( l)1 205( s e t p o s)6 330( f)1 205(c l e a r e r r)7 445 9 1623 2454 t
( t r t o l)5 275( s)1 260( e t b u f)5 275( s)1 205( o c a l t i m e)8 440( l)1 315( t e l l)4 220( f)1 370(c l o c k)4 280 9 1623 2574 t
( t r t o u l)6 330( s)1 260( e t j m p)5 275( s)1 315( o n g j m p)6 330( l)1 260( w r i t e)5 275( f)1 370(c t i m e)4 280 9 1623 2694 t
( m p f i l e)6 330( t)1 205( e t v b u f)6 330( s)1 425( b l e n)4 220( m)1 370( e t c)3 165( g)1 205(d i f f t i m e)7 445 9 1623 2814 t
( m p n a m)5 275( t)1 205( p r i n t f)6 330( s)1 260( b s t o w c s)7 385( m)1 205( e t c h a r)6 330( g)1 480(d i v)2 170 9 1623 2934 t
( o l o w e r)6 330( t)1 315( r a n d)4 220( s)1 370( b t o w c)5 275( m)1 260( e t e n v)5 275( g)1 315(f c l o s e)5 335 9 1623 3054 t
( o u p p e r)6 330( t)1 260( s c a n f)5 275( s)1 370( e m c h r)5 275( m)1 370( e t s)3 165( g)1 425(f e o f)3 225 9 1623 3174 t
( n g e t c)5 275( u)1 260( t r c a t)5 275( s)1 370( e m c m p)5 275( m)1 260( m t i m e)5 275( g)1 315(f e r r o r)5 335 9 1623 3294 t
( f p r i n t f)7 385( v)1 260( t r c h r)5 275( s)1 370( e m c p y)5 275( m)1 205( s a l n u m)6 330( i)1 315(f f l u s h)5 335 9 1623 3414 t
( p r i n t f)6 330( v)1 260( t r c m p)5 275( s)1 315( e m m o v e)6 330( m)1 205( s a l p h a)6 330( i)1 370(f g e t c)4 280 9 1623 3534 t
( s p r i n t f)7 385( v)1 260( t r c p y)5 275( s)1 370( e m s e t)5 275( m)1 205( s c n t r l)6 330( i)1 260(f g e t p o s)6 390 9 1623 3654 t
( c s t o m b s)7 385( w)1 205( t r c s p n)6 330( s)1 370( k t i m e)5 275( m)1 205( s d i g i t)6 330( i)1 370(f g e t s)4 280 9 1623 3774 t
( c t o m b)5 275( w)1 260( t r l e n)5 275( s)1 370( e r r o r)5 275( p)1 205( s g r a p h)6 330( i)1 370(f o p e n)4 280 9 1623 3894 t
( t r n c a t)6 330( s)1 370( r i n t f)5 275( p)1 205( s l o w e r)6 330( i)1 260(f p r i n t f)6 390 7 1623 4014 t
8 PA f
5338 4206 658 4206 Dl
10 PA f
(Additionally,)658 4446 w
10 CW f
(l i b c)3 225 1 1274 4446 t
10 PA f
(holds the following services.)3 1260 1 1529 4446 t
8 HB f
5338 4606 658 4606 Dl
9 HB f
(Figure 3-2:)1 460 1 658 4706 t
9 CW f
(l i b c)3 204 1 1166 4706 t
9 HB f
(Contents, Names with Synonyms)3 1420 1 1393 4706 t
10 CW f
( o c k f)4 220( l)1 315( e t d a t e)6 330( g)1 315( a s s e r t)6 330(_ _)1 170 6 1321 4898 t
10 PA f
(\262)3053 4898 w
10 CW f
( e l l)3 165( t)1 535(s l e e p)4 280 3 3476 4898 t
10 PA f
(\262)4508 4898 w
10 CW f
( e m p n a m)6 330( t)1 480( t r d u p)5 275( s)1 425( s e a r c h)6 330( l)1 370( e t o p t)5 275( g)1 205(c f g e t i s p e e d)10 610 9 1321 5018 t
( f i n d)4 220( t)1 590( w a b)3 165( s)1 425( e m c c p y)6 330( m)1 315( e t p a s s)6 330( g)1 205(c f g e t o s p e e d)10 610 9 1321 5138 t
( o a s c i i)6 330( t)1 425( c d r a i n)6 330( t)1 480( k f i f o)5 275( m)1 205( e t s u b o p t)8 440( g)1 205(c f s e t i s p e e d)10 610 9 1321 5258 t
( t o l o w e r)7 385( _)1 480( c f l o w)5 275( t)1 480( k t e m p)5 275( m)1 480( e t w)3 165( g)1 205(c f s e t o s p e e d)10 610 9 1321 5378 t
( s e a r c h)6 330( t)1 425( c f l u s h)6 330( t)1 425( o n i t o r)6 330( m)1 315( c r e a t e)6 330( h)1 425(c t e r m i d)6 390 9 1321 5498 t
( t o u p p e r)7 385( _)1 315( c g e t a t t r)8 440( t)1 590( f t w)3 165( n)1 260( d e s t r o y)7 385( h)1 425(c u s e r i d)6 390 9 1321 5618 t
( w a l k)4 220( t)1 315( c g e t p g r p)8 440( t)1 205( l _ l a n g i n f o)10 550( n)1 315( s e a r c h)6 330( h)1 590(d u p 2)3 225 9 1321 5738 t
( z s e t)4 220( t)1 370( c g e t s i d)7 385( t)1 480( c l o s e)5 275( p)1 315( s a s c i i)6 330( i)1 480(f d o p e n)5 335 9 1321 5858 t
( x f t w)4 220( _)1 205( c s e n d b r e a k)10 550( t)1 535( o p e n)4 220( p)1 370( s a t t y)5 275( i)1 315( f i l b u f)6 330(_ _)1 170 10 1321 5978 t
( c s e t a t t r)8 440( t)1 480( u t e n v)5 275( p)1 425( s n a n)4 220( i)1 480(f i l e n o)5 335 7 1321 6098 t
( s n a n d)5 275( i)1 315( f l s b u f)6 330(_ _)1 170 4 1321 6218 t
10 PA f
(\262)2463 6218 w
10 CW f
( c s e t p g r p)8 440( t)1 590(p u t w)3 225 3 2721 6218 t
(f m t m s g)5 335 1 1321 6338 t
10 PA f
(\262)1708 6338 w
10 CW f
( d e l e t e)6 330( t)1 370( e t l a b e l)7 385( s)1 425(l f i n d)4 280 5 2076 6338 t
8 PA f
5338 6530 658 6530 Dl
10 PA f
(\262 Function is at Level 2 in the SVID Issue 3 and therefore at Level 2 in the ABI.)18 3448 1 658 6710 t
9 PB f
( Formats Speci\256cation, Version 1.1)4 1413( Portable)1 690(Tool Interface Standards \(TIS\))3 1249 3 658 7324 t
9 R f
(3-1)5218 7324 w
cleartomark
showpage
restore
%%EndPage: 1 53
%%Page: 2 54
save
mark
54 pagesetup
9 HB f
(ELF: Executable and Linkable Format)4 1605 1 540 540 t
5400 540 2217 540 Dl
10 PA f
(Besides the symbols listed in the With Synonyms table above, synonyms of the form)13 3718 1 540 1020 t
10 CW f
(_)4311 1020 w
10 PI f
(name)4368 1020 w
10 PA f
(exist for)1 357 1 4610 1020 t
10 PI f
(name)4992 1020 w
10 PA f
( Thus)1 271(entries that are not listed with a leading underscore prepended to their name.)12 3427 2 540 1140 t
10 CW f
(l i b c)3 225 1 4261 1140 t
10 PA f
(contains both)1 595 1 4516 1140 t
10 CW f
(g e t o p t)5 335 1 538 1260 t
10 PA f
(and)903 1260 w
10 CW f
(_ g e t o p t)6 390 1 1095 1260 t
10 PA f
(, for example.)2 603 1 1490 1260 t
(Of the routines listed above, the following are not de\256ned elsewhere.)10 3053 1 540 1440 t
10 CW f
( f \) ;)3 165( *)1 110( f i l b u f \( F I L E)11 605( _ _)2 220(i n t)2 170 5 538 1620 t
10 PA f
(This function returns the next input character for)7 2161 1 1140 1740 t
10 CW f
(f)3324 1740 w
10 PA f
( It)1 117(, \256lling its buffer as appropriate.)5 1427 2 3389 1740 t
(returns)1140 1860 w
10 CW f
(E O F)2 170 1 1484 1860 t
10 PA f
(if an error occurs.)3 778 1 1684 1860 t
10 CW f
( f \) ;)3 165( *)1 110( I L E)3 165( F)1 110( ,)1 55( x)1 110( f l s b u f \( i n t)10 550( _ _)2 220(i n t)2 170 9 538 2040 t
10 PA f
(This function \257ushes the output characters for)6 2038 1 1140 2160 t
10 CW f
(f)3201 2160 w
10 PA f
(as if)1 179 1 3291 2160 t
10 CW f
(p u t c \( x , f \))8 500 1 3493 2160 t
10 PA f
(had been called and then)4 1105 1 4023 2160 t
(appends the value of)3 924 1 1140 2280 t
10 CW f
(x)2087 2280 w
10 PA f
( returns)1 346( It)1 117(to the resulting output stream.)4 1349 3 2177 2280 t
10 CW f
(E O F)2 170 1 4012 2280 t
10 PA f
(if an error occurs and)4 947 1 4212 2280 t
10 CW f
(x)1138 2400 w
10 PA f
(otherwise.)1228 2400 w
10 CW f
( n t \) ;)4 220( i)1 110( n t \) ,)4 220( i)1 110( ,)1 55( *)1 110( t a t)3 165( s)1 110( t r u c t)5 275( s)1 110( ,)1 55( *)1 110( * \) \( c h a r)7 385( \()1 110( n t)2 110( i)1 110( ,)1 55( *)1 110( h a r)3 165( c)1 110( x f t w \( i n t ,)9 495( _)1 110(i n t)2 170 23 538 2580 t
10 PA f
(Calls to the)2 498 1 1140 2700 t
10 CW f
(f t w)2 170 1 1691 2700 t
10 PA f
(\(BA)1858 2700 w
10 S f
(_)2030 2700 w
10 PA f
(LIB\) function are mapped to this function when applications are com-)10 3078 1 2080 2700 t
( function is identical to)4 1010(piled. This)1 492 2 1140 2820 t
10 CW f
(f t w)2 170 1 2695 2820 t
10 PA f
(\(BA)2862 2820 w
10 S f
(_)3034 2820 w
10 PA f
(LIB\), except that)2 723 1 3084 2820 t
10 CW f
(_ x f t w \( \))6 390 1 3860 2820 t
10 PA f
(takes an interposed)2 861 1 4272 2820 t
(\256rst argument, which must have the value 2.)7 1973 1 1140 2940 t
( ``System Data)2 636( See)1 199(See this chapter's other library sections for more SVID, ANSI C, and POSIX facilities.)13 3740 3 540 3180 t
(Interfaces'' later in this chapter for more information.)7 2355 1 540 3300 t
14 HB f
(Global Data Symbols)2 1400 1 540 3680 t
10 PA f
(The)540 3920 w
10 CW f
(l i b c)3 225 1 730 3920 t
10 PA f
(library requires that some global external data symbols be de\256ned for its routines to work)14 3971 1 977 3920 t
( the data symbols required for the)6 1499(properly. All)1 599 2 540 4040 t
10 CW f
(l i b s y s)5 335 1 2661 4040 t
10 PA f
(library must be provided by)4 1246 1 3018 4040 t
10 CW f
(l i b c)3 225 1 4287 4040 t
10 PA f
(, as well as the)4 637 1 4509 4040 t
(data symbols listed in the table below.)6 1689 1 540 4160 t
(For formal declarations of the data objects represented by these symbols, see the)12 3541 1 540 4340 t
10 PI f
(System V Interface)2 769 1 4106 4340 t
(De\256nition, Third Edition)2 1018 1 540 4460 t
10 PA f
( of Chapter 6 in the appropriate processor sup-)8 2070( section)1 342(or the ``Data De\256nitions'')3 1121 3 1591 4460 t
(plement to the)2 641 1 540 4580 t
10 PI f
(System V ABI)2 583 1 1206 4580 t
10 PA f
(.)1789 4580 w
(For entries in the following table that are in)8 1916 1 540 4760 t
10 PI f
(name)2481 4760 w
10 PA f
(-)2723 4760 w
10 S f
(_)2781 4760 w
10 PI f
(name)2831 4760 w
10 PA f
(form, both symbols in each pair represent the)7 2006 1 3073 4760 t
( underscore synonyms are provided to satisfy the ANSI C standard.)10 3000( The)1 217(same data.)1 472 3 540 4880 t
8 HB f
5220 5040 540 5040 Dl
9 HB f
(Figure 3-3:)1 460 1 540 5140 t
9 CW f
(l i b c)3 204 1 1048 5140 t
9 HB f
( External Data Symbols)3 1000(Contents, Global)1 745 2 1275 5140 t
10 CW f
( p t a r g)5 275( o)1 260(g e t d a t e _ e r r)10 610 3 2308 5332 t
( p t e r r)5 275( o)1 205(_ g e t d a t e _ e r r)11 665 3 2308 5452 t
( p t i n d)5 275( o)1 535( i o b)3 165(_ _)1 170 4 2308 5572 t
(o p t o p t)5 335 1 3118 5692 t
8 PA f
5220 5884 540 5884 Dl
9 R f
(3-2)540 7324 w
9 PB f
( Formats Speci\256cation, Version 1.1)4 1413( Portable)1 690(Tool Interface Standards \(TIS\))3 1249 3 1868 7324 t
cleartomark
showpage
restore
%%EndPage: 2 54
%%Page: 1 55
save
mark
55 pagesetup
16 HB f
5458 516 658 516 Dl
36 HB f
(I)898 808 w
18 HB f
(Index)1378 682 w
9 HB f
5458 1626 658 1626 Dl
13 HB f
(Index)1378 1740 w
9 H f
(I-1)5170 1740 w
9 PB f
( Formats Speci\256cation, Version 1.1)4 1413( Portable)1 805(Tool Interface Standards \(TIS\))3 1249 3 658 7324 t
9 R f
(i)5313 7324 w
cleartomark
showpage
restore
%%EndPage: 1 55
%%Page: 1 56
save
mark
56 pagesetup
16 HB f
5458 516 658 516 Dl
(Index)658 682 w
10 PA f
(2's complement)1 696 1 658 1042 t
8 H f
(1: 6)1 134 1 1448 1042 t
16 H f
(A)858 1402 w
10 PA f
(ABI conformance)1 771 1 658 1582 t
8 H f
( 3, 6, 12, 14)4 424( 2:)1 111(1: 11,)1 201 3 1523 1582 t
10 CW f
(a b o r t)4 280 1 656 1702 t
8 H f
(3: 1)1 134 1 1027 1702 t
10 CW f
(a b s)2 170 1 656 1822 t
8 H f
(3: 1)1 134 1 917 1822 t
10 PA f
(absolute code)1 605 1 658 1942 t
8 H f
(2: 9)1 134 1 1357 1942 t
10 PA f
(absolute symbols)1 764 1 658 2062 t
8 H f
(1: 8)1 134 1 1516 2062 t
10 PA f
(address, virtual)1 691 1 658 2182 t
8 H f
(2: 7)1 134 1 1443 2182 t
10 CW f
(a d d s e v e r i t y)10 610 1 656 2302 t
8 H f
(3: 1)1 134 1 1357 2302 t
10 PA f
(alignment)658 2422 w
(executable \256le)1 630 1 733 2542 t
8 H f
(2: 7)1 134 1 1457 2542 t
10 PA f
(section)733 2662 w
8 H f
(1: 10)1 179 1 1136 2662 t
10 PA f
(ANSI C)1 344 1 658 2782 t
8 H f
(3: 2)1 134 1 1096 2782 t
10 PA f
(archive \256le)1 488 1 658 2902 t
8 H f
( 15)1 112( 2:)1 111(1: 18,)1 201 3 1240 2902 t
10 CW f
(a s c t i m e)6 390 1 656 3022 t
8 H f
(3: 1)1 134 1 1137 3022 t
10 PA f
(assembler)658 3142 w
8 H f
(1: 1)1 134 1 1194 3142 t
10 PA f
(symbol names)1 636 1 733 3262 t
8 H f
(1: 17)1 179 1 1463 3262 t
10 CW f
( a s s e r t)6 330(_ _)1 170 2 656 3382 t
8 H f
(3: 1)1 134 1 1247 3382 t
10 CW f
(a t e x i t)5 335 1 656 3502 t
10 PA f
(\(BA)988 3502 w
10 S f
(_)1160 3502 w
10 PA f
(OS\))1210 3502 w
8 H f
(2: 20)1 179 1 1469 3502 t
10 CW f
(a t o f)3 225 1 656 3622 t
8 H f
(3: 1)1 134 1 972 3622 t
10 CW f
(a t o i)3 225 1 656 3742 t
8 H f
(3: 1)1 134 1 972 3742 t
10 CW f
(a t o l)3 225 1 656 3862 t
8 H f
(3: 1)1 134 1 972 3862 t
16 H f
(B)858 4222 w
10 PA f
(base address)1 564 1 658 4402 t
8 H f
( 9, 12)2 201( 2:)1 111(1: 22,)1 201 3 1316 4402 t
10 PA f
(de\256nition)733 4522 w
8 H f
(2: 4)1 134 1 1259 4522 t
10 CW f
(b s e a r c h)6 390 1 656 4642 t
8 H f
(3: 1)1 134 1 1137 4642 t
10 PA f
(byte order)1 461 1 658 4762 t
8 H f
(1: 6)1 134 1 1213 4762 t
16 H f
(C)858 5122 w
10 PA f
(C language)1 503 1 658 5302 t
(assembly names)1 721 1 733 5422 t
8 H f
(1: 17)1 179 1 1548 5422 t
10 PA f
(library \(see library\))2 852 1 733 5542 t
(C library)1 395 1 658 5662 t
8 H f
(3: 1)1 134 1 1147 5662 t
10 CW f
(c f g e t i s p e e d)10 610 1 656 5782 t
8 H f
(3: 1)1 134 1 1357 5782 t
10 CW f
(c f g e t o s p e e d)10 610 1 656 5902 t
8 H f
(3: 1)1 134 1 1357 5902 t
10 CW f
(c f s e t i s p e e d)10 610 1 656 6022 t
8 H f
(3: 1)1 134 1 1357 6022 t
10 CW f
(c f s e t o s p e e d)10 610 1 656 6142 t
8 H f
(3: 1)1 134 1 1357 6142 t
10 CW f
(c l e a r e r r)7 445 1 656 6262 t
8 H f
(3: 1)1 134 1 1192 6262 t
10 CW f
(c l o c k)4 280 1 656 6382 t
8 H f
(3: 1)1 134 1 1027 6382 t
10 PA f
(common symbols)1 780 1 658 6502 t
8 H f
(1: 8)1 134 1 1532 6502 t
10 PA f
(core \256le)1 350 1 658 6622 t
8 H f
(1: 3)1 134 1 1102 6622 t
10 CW f
(c t e r m i d)6 390 1 656 6742 t
8 H f
(3: 1)1 134 1 1137 6742 t
10 CW f
(c t i m e)4 280 1 3120 1042 t
8 H f
(3: 1)1 134 1 3491 1042 t
10 CW f
(c u s e r i d)6 390 1 3120 1162 t
8 H f
(3: 1)1 134 1 3601 1162 t
16 H f
(D)3322 1522 w
10 PA f
(data, uninitialized)1 807 1 3122 1702 t
8 H f
(2: 8)1 134 1 4023 1702 t
10 PA f
(data representation)1 861 1 3122 1822 t
8 H f
(1: 2, 6)2 223 1 4077 1822 t
10 CW f
(d i f f t i m e)7 445 1 3120 1942 t
8 H f
(3: 1)1 134 1 3656 1942 t
10 CW f
(d i v)2 170 1 3120 2062 t
8 H f
(3: 1)1 134 1 3381 2062 t
10 CW f
(d u p 2)3 225 1 3120 2182 t
8 H f
(3: 1)1 134 1 3436 2182 t
10 CW f
(_ D Y N A M I C)7 445 1 3120 2302 t
8 H f
(2: 11)1 179 1 3656 2302 t
10 PA f
(see also dynamic linking)3 1090 1 3197 2422 t
8 H f
(2: 11)1 179 1 4381 2422 t
10 PA f
(dynamic library \(see shared object \256le\))5 1709 1 3122 2542 t
(dynamic linker)1 671 1 3122 2662 t
8 H f
( 10)1 112( 2:)1 111(1: 1,)1 156 3 3887 2662 t
8 S1 f
(\261)4266 2662 w
8 H f
(11)4311 2662 w
10 PA f
(see also dynamic linking)3 1090 1 3197 2782 t
8 H f
(2: 10)1 179 1 4381 2782 t
10 PA f
(see also link editor)3 827 1 3197 2902 t
8 H f
(2: 10)1 179 1 4118 2902 t
10 PA f
(see also shared object \256le)4 1109 1 3197 3022 t
8 H f
(2: 10)1 179 1 4400 3022 t
10 PA f
(dynamic linking)1 726 1 3122 3142 t
8 H f
(2: 10)1 179 1 3942 3142 t
10 PA f
(base address)1 564 1 3197 3262 t
8 H f
(2: 4)1 134 1 3855 3262 t
10 CW f
(_ D Y N A M I C)7 445 1 3195 3382 t
8 H f
(2: 11)1 179 1 3731 3382 t
10 PA f
(environment)3197 3502 w
8 H f
(2: 11, 15, 19)3 447 1 3862 3502 t
10 PA f
(hash function)1 603 1 3197 3622 t
8 H f
(2: 19)1 179 1 3894 3622 t
10 PA f
(initialization function)1 956 1 3197 3742 t
8 H f
(2: 14, 20)2 313 1 4247 3742 t
10 PA f
(lazy binding)1 556 1 3197 3862 t
8 H f
(2: 11, 19)2 313 1 3847 3862 t
10 CW f
(L D _ B I N D _ N O W)10 610 1 3195 3982 t
8 H f
(2: 11, 19)2 313 1 3896 3982 t
10 CW f
(L D _ L I B R A R Y _ P A T H)14 830 1 3195 4102 t
8 H f
(2: 15)1 179 1 4116 4102 t
10 PA f
(relocation)3197 4222 w
8 H f
(2: 13, 16, 18)3 447 1 3732 4222 t
10 PA f
(see also dynamic linker)3 1035 1 3197 4342 t
8 H f
(2: 10)1 179 1 4326 4342 t
10 PA f
(see also hash table)3 812 1 3197 4462 t
8 H f
(2: 13)1 179 1 4103 4462 t
10 PA f
(see also procedure linkage table)4 1411 1 3197 4582 t
8 H f
(2: 13)1 179 1 4702 4582 t
10 PA f
(string table)1 498 1 3197 4702 t
8 H f
(2: 13)1 179 1 3789 4702 t
10 PA f
(symbol resolution)1 799 1 3197 4822 t
8 H f
(2: 15)1 179 1 4090 4822 t
10 PA f
(symbol table)1 565 1 3197 4942 t
8 H f
( 13)1 112( 2:)1 111(1: 10, 14,)2 335 3 3856 4942 t
10 PA f
(termination function)1 916 1 3197 5062 t
8 H f
(2: 14, 20)2 313 1 4207 5062 t
10 PA f
(dynamic segments)1 826 1 3122 5182 t
8 H f
(2: 9)1 134 1 4042 5182 t
16 H f
(E)3322 5542 w
10 PA f
(ELF)3122 5722 w
8 H f
(1: 1)1 134 1 3394 5722 t
10 PA f
(entry point \(see process, entry point\))5 1625 1 3122 5842 t
(environment)3122 5962 w
8 H f
(2: 11, 15, 19)3 447 1 3787 5962 t
10 CW f
(e x e c)3 225 1 3120 6082 t
10 PA f
(\(BA)3342 6082 w
10 S f
(_)3514 6082 w
10 PA f
(OS\))3564 6082 w
8 H f
( 10)1 112( 2:)1 111(1: 1,)1 156 3 3823 6082 t
8 S1 f
(\261)4202 6082 w
8 H f
(11, 15)1 224 1 4247 6082 t
10 PA f
(paging)3197 6202 w
8 H f
(2: 7)1 134 1 3600 6202 t
10 PA f
(executable \256le)1 630 1 3122 6322 t
8 H f
(1: 1)1 134 1 3846 6322 t
10 PA f
(segments)3197 6442 w
8 H f
(2: 9)1 134 1 3706 6442 t
10 CW f
(e x i t)3 225 1 3120 6562 t
8 H f
(2: 20)1 179 1 3436 6562 t
9 PB f
( Formats Speci\256cation, Version 1.1)4 1413( Portable)1 851(Tool Interface Standards \(TIS\))3 1249 3 658 7324 t
9 R f
(I-1)5233 7324 w
cleartomark
showpage
restore
%%EndPage: 1 56
%%Page: 2 57
save
mark
57 pagesetup
9 HB f
(ELF: Executable and Linkable Format)4 1605 1 540 540 t
5400 540 2217 540 Dl
16 H f
(F)740 1020 w
10 CW f
(f c l o s e)5 335 1 538 1200 t
8 H f
(3: 1)1 134 1 964 1200 t
10 CW f
(f d o p e n)5 335 1 538 1320 t
8 H f
(3: 1)1 134 1 964 1320 t
10 CW f
(f e o f)3 225 1 538 1440 t
8 H f
(3: 1)1 134 1 854 1440 t
10 CW f
(f e r r o r)5 335 1 538 1560 t
8 H f
(3: 1)1 134 1 964 1560 t
10 CW f
(f f l u s h)5 335 1 538 1680 t
8 H f
(3: 1)1 134 1 964 1680 t
10 CW f
(f g e t c)4 280 1 538 1800 t
8 H f
(3: 1)1 134 1 909 1800 t
10 CW f
(f g e t p o s)6 390 1 538 1920 t
8 H f
(3: 1)1 134 1 1019 1920 t
10 CW f
(f g e t s)4 280 1 538 2040 t
8 H f
(3: 1)1 134 1 909 2040 t
10 CW f
( f i l b u f)6 330(_ _)1 170 2 538 2160 t
8 H f
(3: 1)1 134 1 1129 2160 t
8 S1 f
(\261)1263 2160 w
8 H f
(2)1308 2160 w
10 PA f
(\256le, object \(see object \256le\))4 1121 1 540 2280 t
(\256le offset)1 407 1 540 2400 t
8 H f
(2: 7)1 134 1 1041 2400 t
10 CW f
(f i l e n o)5 335 1 538 2520 t
8 H f
(3: 1)1 134 1 964 2520 t
10 CW f
( f l s b u f)6 330(_ _)1 170 2 538 2640 t
8 H f
(3: 1)1 134 1 1129 2640 t
8 S1 f
(\261)1263 2640 w
8 H f
(2)1308 2640 w
10 CW f
(f m t m s g)5 335 1 538 2760 t
8 H f
(3: 1)1 134 1 964 2760 t
10 CW f
(f o p e n)4 280 1 538 2880 t
8 H f
(3: 1)1 134 1 909 2880 t
10 PA f
(formats, object \256le)2 812 1 540 3000 t
8 H f
(1: 1)1 134 1 1446 3000 t
10 PA f
(FORTRAN)540 3120 w
8 H f
(1: 8)1 134 1 1125 3120 t
10 CW f
(f p r i n t f)6 390 1 538 3240 t
8 H f
(3: 1)1 134 1 1019 3240 t
10 CW f
(f p u t c)4 280 1 538 3360 t
8 H f
(3: 1)1 134 1 909 3360 t
10 CW f
(f p u t s)4 280 1 538 3480 t
8 H f
(3: 1)1 134 1 909 3480 t
10 CW f
(f r e a d)4 280 1 538 3600 t
8 H f
(3: 1)1 134 1 909 3600 t
10 CW f
(f r e o p e n)6 390 1 538 3720 t
8 H f
(3: 1)1 134 1 1019 3720 t
10 CW f
(f r e x p)4 280 1 538 3840 t
8 H f
(3: 1)1 134 1 909 3840 t
10 CW f
(f s c a n f)5 335 1 538 3960 t
8 H f
(3: 1)1 134 1 964 3960 t
10 CW f
(f s e e k)4 280 1 538 4080 t
8 H f
(3: 1)1 134 1 909 4080 t
10 CW f
(f s e t p o s)6 390 1 538 4200 t
8 H f
(3: 1)1 134 1 1019 4200 t
10 CW f
(f t e l l)4 280 1 538 4320 t
8 H f
(3: 1)1 134 1 909 4320 t
10 CW f
(f t w)2 170 1 538 4440 t
10 PA f
(\(BA)705 4440 w
10 S f
(_)877 4440 w
10 PA f
(LIB\))927 4440 w
8 H f
(3: 2)1 134 1 1210 4440 t
10 CW f
(f w r i t e)5 335 1 538 4560 t
8 H f
(3: 1)1 134 1 964 4560 t
16 H f
(G)740 4920 w
10 CW f
(g e t c)3 225 1 538 5100 t
8 H f
(3: 1)1 134 1 854 5100 t
10 CW f
(g e t c h a r)6 390 1 538 5220 t
8 H f
(3: 1)1 134 1 1019 5220 t
10 CW f
(g e t d a t e)6 390 1 538 5340 t
8 H f
(3: 1)1 134 1 1019 5340 t
10 CW f
(_ g e t d a t e _ e r r)11 665 1 538 5460 t
8 H f
(3: 2)1 134 1 1294 5460 t
10 CW f
(g e t d a t e _ e r r)10 610 1 538 5580 t
8 H f
(3: 2)1 134 1 1239 5580 t
10 CW f
(g e t e n v)5 335 1 538 5700 t
8 H f
(3: 1)1 134 1 964 5700 t
10 CW f
(g e t o p t)5 335 1 538 5820 t
8 H f
(3: 1)1 134 1 964 5820 t
10 CW f
(_ g e t o p t)6 390 1 538 5940 t
8 H f
(3: 2)1 134 1 1019 5940 t
10 CW f
(g e t o p t)5 335 1 538 6060 t
8 H f
(3: 2)1 134 1 964 6060 t
10 CW f
(g e t p a s s)6 390 1 538 6180 t
8 H f
(3: 1)1 134 1 1019 6180 t
10 CW f
(g e t s)3 225 1 538 6300 t
8 H f
(3: 1)1 134 1 854 6300 t
10 CW f
(g e t s u b o p t)8 500 1 538 6420 t
8 H f
(3: 1)1 134 1 1129 6420 t
10 CW f
(g e t w)3 225 1 538 6540 t
8 H f
(3: 1)1 134 1 854 6540 t
10 PA f
(global data symbols)2 885 1 540 6660 t
8 H f
(3: 2)1 134 1 1519 6660 t
10 PA f
(global offset table)2 783 1 540 6780 t
8 H f
(1: 14, 23)2 313 1 1417 6780 t
8 S1 f
(\261)1730 6780 w
8 H f
( 11, 16)2 246(24, 2:)1 223 2 1775 6780 t
10 CW f
(g m t i m e)5 335 1 3002 1020 t
8 H f
(3: 1)1 134 1 3428 1020 t
16 H f
(H)3204 1380 w
10 PA f
(hash function)1 603 1 3004 1560 t
8 H f
(2: 19)1 179 1 3701 1560 t
10 PA f
(hash table)1 448 1 3004 1680 t
8 H f
( 11, 13, 19)3 380( 2:)1 111(1: 12, 14,)2 335 3 3546 1680 t
10 CW f
(h c r e a t e)6 390 1 3002 1800 t
8 H f
(3: 1)1 134 1 3483 1800 t
10 CW f
(h d e s t r o y)7 445 1 3002 1920 t
8 H f
(3: 1)1 134 1 3538 1920 t
10 CW f
(h s e a r c h)6 390 1 3002 2040 t
8 H f
(3: 1)1 134 1 3483 2040 t
16 H f
(I)3204 2400 w
10 PA f
(interpreter, see program interpreter)3 1581 1 3004 2580 t
8 H f
(2: 10)1 179 1 4679 2580 t
10 CW f
( i o b)3 165(_ _)1 170 2 3002 2700 t
8 H f
(3: 2)1 134 1 3428 2700 t
10 CW f
(i s a l n u m)6 390 1 3002 2820 t
8 H f
(3: 1)1 134 1 3483 2820 t
10 CW f
(i s a l p h a)6 390 1 3002 2940 t
8 H f
(3: 1)1 134 1 3483 2940 t
10 CW f
(i s a s c i i)6 390 1 3002 3060 t
8 H f
(3: 1)1 134 1 3483 3060 t
10 CW f
(i s a t t y)5 335 1 3002 3180 t
8 H f
(3: 1)1 134 1 3428 3180 t
10 CW f
(i s c n t r l)6 390 1 3002 3300 t
8 H f
(3: 1)1 134 1 3483 3300 t
10 CW f
(i s d i g i t)6 390 1 3002 3420 t
8 H f
(3: 1)1 134 1 3483 3420 t
10 CW f
(i s g r a p h)6 390 1 3002 3540 t
8 H f
(3: 1)1 134 1 3483 3540 t
10 CW f
(i s l o w e r)6 390 1 3002 3660 t
8 H f
(3: 1)1 134 1 3483 3660 t
10 CW f
(i s n a n)4 280 1 3002 3780 t
8 H f
(3: 1)1 134 1 3373 3780 t
10 CW f
(i s n a n d)5 335 1 3002 3900 t
8 H f
(3: 1)1 134 1 3428 3900 t
10 CW f
(i s p r i n t)6 390 1 3002 4020 t
8 H f
(3: 1)1 134 1 3483 4020 t
10 CW f
(i s p u n c t)6 390 1 3002 4140 t
8 H f
(3: 1)1 134 1 3483 4140 t
10 CW f
(i s s p a c e)6 390 1 3002 4260 t
8 H f
(3: 1)1 134 1 3483 4260 t
10 CW f
(i s u p p e r)6 390 1 3002 4380 t
8 H f
(3: 1)1 134 1 3483 4380 t
10 CW f
(i s x d i g i t)7 445 1 3002 4500 t
8 H f
(3: 1)1 134 1 3538 4500 t
16 H f
(J)3204 4860 w
10 CW f
(j m p)2 170 1 3002 5040 t
10 PA f
(instruction)3194 5040 w
8 H f
(2: 17)1 179 1 3769 5040 t
8 S1 f
(\261)3948 5040 w
8 H f
(18)3993 5040 w
16 H f
(L)3204 5400 w
10 CW f
(l a b s)3 225 1 3002 5580 t
8 H f
(3: 1)1 134 1 3318 5580 t
10 PA f
(lazy binding)1 556 1 3004 5700 t
8 H f
(2: 11, 19)2 313 1 3654 5700 t
10 CW f
(L D _ B I N D _ N O W)10 610 1 3002 5820 t
8 H f
(2: 11, 19)2 313 1 3703 5820 t
10 CW f
(l d e x p)4 280 1 3002 5940 t
8 H f
(3: 1)1 134 1 3373 5940 t
10 CW f
(l d i v)3 225 1 3002 6060 t
8 H f
(3: 1)1 134 1 3318 6060 t
10 CW f
(L D _ L I B R A R Y _ P A T H)14 830 1 3002 6180 t
8 H f
(2: 15)1 179 1 3923 6180 t
10 CW f
(l d)1 115 1 3002 6300 t
10 PA f
(\(SD)3114 6300 w
10 S f
(_)3277 6300 w
10 PA f
(CMD\) \(see link editor\))3 993 1 3327 6300 t
10 CW f
(l f i n d)4 280 1 3002 6420 t
8 H f
(3: 1)1 134 1 3373 6420 t
10 CW f
(l i b c)3 225 1 3002 6540 t
8 H f
(3: 0, 2)2 223 1 3318 6540 t
10 PA f
(see also library)2 663 1 3079 6660 t
8 H f
(3: 0)1 134 1 3836 6660 t
10 CW f
(l i b c)3 225 1 3002 6780 t
10 PA f
(contents)3249 6780 w
8 H f
(3: 1)1 134 1 3714 6780 t
8 S1 f
(\261)3848 6780 w
8 H f
(2)3893 6780 w
9 R f
(I-2)540 7324 w
9 PB f
( Interface Standards \(TIS\))3 1059( Tool)1 443(Portable Formats Speci\256cation, Version 1.1)4 1758 3 1960 7324 t
cleartomark
showpage
restore
%%EndPage: 2 57
%%Page: 3 58
save
mark
58 pagesetup
9 HB f
3841 540 658 540 Dl
(ELF: Executable and Linkable Format)4 1605 1 3913 540 t
10 PA f
(library)658 1020 w
(dynamic \(see shared object \256le\))4 1385 1 733 1140 t
(see also)1 339 1 733 1260 t
10 CW f
(l i b c)3 225 1 1095 1260 t
8 H f
(3: 0)1 134 1 1411 1260 t
10 PA f
(shared \(see shared object \256le\))4 1298 1 733 1380 t
10 CW f
(l i b s y s)5 335 1 656 1500 t
8 H f
(3: 1)1 134 1 1082 1500 t
8 S1 f
(\261)1216 1500 w
8 H f
(2)1261 1500 w
10 PA f
(link editor)1 463 1 658 1620 t
8 H f
(1: 1, 18)2 268 1 1215 1620 t
8 S1 f
(\261)1483 1620 w
8 H f
( 11, 13, 15)3 380( 2:)1 111(19, 23,)1 246 3 1528 1620 t
8 S1 f
(\261)2265 1620 w
8 H f
(16)2310 1620 w
10 PA f
(see also dynamic linker)3 1035 1 733 1740 t
8 H f
(2: 10)1 179 1 1862 1740 t
10 CW f
(l o c a l t i m e)8 500 1 656 1860 t
8 H f
(3: 1)1 134 1 1247 1860 t
10 CW f
(l o c k f)4 280 1 656 1980 t
8 H f
(3: 1)1 134 1 1027 1980 t
10 CW f
(l o n g j m p)6 390 1 656 2100 t
8 H f
(3: 1)1 134 1 1137 2100 t
10 CW f
(l s e a r c h)6 390 1 656 2220 t
8 H f
(3: 1)1 134 1 1137 2220 t
16 H f
(M)858 2580 w
10 PA f
(magic number)1 641 1 658 2760 t
8 H f
(1: 4)1 134 1 1393 2760 t
8 S1 f
(\261)1527 2760 w
8 H f
(5)1572 2760 w
10 CW f
(m a i n)3 225 1 656 2880 t
8 H f
(1: 14)1 179 1 972 2880 t
10 CW f
(m b l e n)4 280 1 656 3000 t
8 H f
(3: 1)1 134 1 1027 3000 t
10 CW f
(m b s t o w c s)7 445 1 656 3120 t
8 H f
(3: 1)1 134 1 1192 3120 t
10 CW f
(m b t o w c)5 335 1 656 3240 t
8 H f
(3: 1)1 134 1 1082 3240 t
10 CW f
(m e m c c p y)6 390 1 656 3360 t
8 H f
(3: 1)1 134 1 1137 3360 t
10 CW f
(m e m c h r)5 335 1 656 3480 t
8 H f
(3: 1)1 134 1 1082 3480 t
10 CW f
(m e m c m p)5 335 1 656 3600 t
8 H f
(3: 1)1 134 1 1082 3600 t
10 CW f
(m e m c p y)5 335 1 656 3720 t
8 H f
(3: 1)1 134 1 1082 3720 t
10 CW f
(m e m m o v e)6 390 1 656 3840 t
8 H f
(3: 1)1 134 1 1137 3840 t
10 CW f
(m e m s e t)5 335 1 656 3960 t
8 H f
(3: 1)1 134 1 1082 3960 t
10 CW f
(m k f i f o)5 335 1 656 4080 t
8 H f
(3: 1)1 134 1 1082 4080 t
10 CW f
(m k t e m p)5 335 1 656 4200 t
8 H f
(3: 1)1 134 1 1082 4200 t
10 CW f
(m k t i m e)5 335 1 656 4320 t
8 H f
(3: 1)1 134 1 1082 4320 t
10 CW f
(m m a p)3 225 1 656 4440 t
10 PA f
(\(KE)878 4440 w
10 S f
(_)1045 4440 w
10 PA f
(OS\))1095 4440 w
8 H f
(2: 10)1 179 1 1354 4440 t
10 CW f
(m o n i t o r)6 390 1 656 4560 t
8 H f
(3: 1)1 134 1 1137 4560 t
16 H f
(N)858 4920 w
10 CW f
(n f t w)3 225 1 656 5100 t
8 H f
(3: 1)1 134 1 972 5100 t
10 CW f
(n l _ l a n g i n f o)10 610 1 656 5220 t
8 H f
(3: 1)1 134 1 1357 5220 t
16 H f
(O)858 5580 w
10 PA f
(object \256le)1 421 1 658 5760 t
8 H f
(1: 1)1 134 1 1173 5760 t
10 PA f
(archive \256le)1 488 1 733 5880 t
8 H f
(1: 18)1 179 1 1315 5880 t
10 PA f
(data representation)1 861 1 733 6000 t
8 H f
(1: 2)1 134 1 1688 6000 t
10 PA f
(data types)1 458 1 733 6120 t
8 H f
(1: 2)1 134 1 1285 6120 t
10 PA f
(ELF header)1 508 1 733 6240 t
8 H f
(1: 1, 3)2 223 1 1335 6240 t
10 PA f
(extensions)733 6360 w
8 H f
(1: 4)1 134 1 1292 6360 t
10 PA f
(format)733 6480 w
8 H f
(1: 1)1 134 1 1126 6480 t
10 PA f
(hash table)1 448 1 733 6600 t
8 H f
(2: 11, 13, 19)3 447 1 1275 6600 t
10 PA f
(program header)1 719 1 733 6720 t
8 H f
( 2)1 67( 2:)1 111(1: 2,)1 156 3 1546 6720 t
10 PA f
(program loading)1 752 1 3197 1020 t
8 H f
(2: 2)1 134 1 4043 1020 t
10 PA f
(relocation)3197 1140 w
8 H f
( 13)1 112( 2:)1 111(1: 12, 21,)2 335 3 3732 1140 t
10 PA f
(section)3197 1260 w
8 H f
(1: 1, 8)2 223 1 3600 1260 t
10 PA f
(section alignment)1 783 1 3197 1380 t
8 H f
(1: 10)1 179 1 4074 1380 t
10 PA f
(section attributes)1 757 1 3197 1500 t
8 H f
(1: 12)1 179 1 4048 1500 t
10 PA f
(section header)1 639 1 3197 1620 t
8 H f
(1: 2, 8)2 223 1 3930 1620 t
10 PA f
(section names)1 620 1 3197 1740 t
8 H f
(1: 15)1 179 1 3911 1740 t
10 PA f
(section types)1 573 1 3197 1860 t
8 H f
(1: 10)1 179 1 3864 1860 t
10 PA f
(see also archive \256le)3 852 1 3197 1980 t
8 H f
(1: 1)1 134 1 4143 1980 t
10 PA f
(see also dynamic linking)3 1090 1 3197 2100 t
8 H f
(2: 10)1 179 1 4381 2100 t
10 PA f
(see also executable \256le)3 994 1 3197 2220 t
8 H f
(1: 1)1 134 1 4285 2220 t
10 PA f
(see also relocatable \256le)3 1008 1 3197 2340 t
8 H f
(1: 1)1 134 1 4299 2340 t
10 PA f
(see also shared object \256le)4 1109 1 3197 2460 t
8 H f
(1: 1)1 134 1 4400 2460 t
10 PA f
(segment)3197 2580 w
8 H f
(2: 1)1 134 1 3664 2580 t
8 S1 f
(\261)3798 2580 w
8 H f
(2, 7)1 134 1 3843 2580 t
10 PA f
(shared object \256le)2 745 1 3197 2700 t
8 H f
(2: 10)1 179 1 4036 2700 t
10 PA f
(special sections)1 678 1 3197 2820 t
8 H f
(1: 13)1 179 1 3969 2820 t
10 PA f
(string table)1 498 1 3197 2940 t
8 H f
(1: 12, 16)2 313 1 3789 2940 t
8 S1 f
(\261)4102 2940 w
8 H f
(17)4147 2940 w
10 PA f
(symbol table)1 565 1 3197 3060 t
8 H f
(1: 12, 17)2 313 1 3856 3060 t
10 PA f
(type)3197 3180 w
8 H f
(1: 3)1 134 1 3488 3180 t
10 PA f
(version)3197 3300 w
8 H f
(1: 4)1 134 1 3619 3300 t
10 CW f
(o p t a r g)5 335 1 3120 3420 t
8 H f
(3: 2)1 134 1 3546 3420 t
10 CW f
(o p t e r r)5 335 1 3120 3540 t
8 H f
(3: 2)1 134 1 3546 3540 t
10 CW f
(o p t i n d)5 335 1 3120 3660 t
8 H f
(3: 2)1 134 1 3546 3660 t
16 H f
(P)3322 4020 w
10 PA f
(page size)1 408 1 3122 4200 t
8 H f
(2: 7)1 134 1 3624 4200 t
10 PA f
(paging)3122 4320 w
8 H f
(2: 7)1 134 1 3525 4320 t
10 PA f
(performance)3197 4440 w
8 H f
(2: 7)1 134 1 3855 4440 t
10 CW f
(p c l o s e)5 335 1 3120 4560 t
8 H f
(3: 1)1 134 1 3546 4560 t
10 PA f
(performance, paging)1 923 1 3122 4680 t
8 H f
(2: 7)1 134 1 4139 4680 t
10 CW f
(p e r r o r)5 335 1 3120 4800 t
8 H f
(3: 1)1 134 1 3546 4800 t
10 CW f
(p o p e n)4 280 1 3120 4920 t
8 H f
(3: 1)1 134 1 3491 4920 t
10 PA f
(position-independent code)1 1189 1 3122 5040 t
8 H f
(2: 9, 11)2 268 1 4405 5040 t
10 PA f
(POSIX)3122 5160 w
8 H f
(3: 2)1 134 1 3509 5160 t
10 CW f
(p r i n t f)5 335 1 3120 5280 t
8 H f
(3: 1)1 134 1 3546 5280 t
10 PA f
(procedure linkage table)2 1047 1 3122 5400 t
8 H f
(1: 15, 19, 23)3 447 1 4263 5400 t
8 S1 f
(\261)4710 5400 w
8 H f
( 11,)1 134(24, 2:)1 223 2 4755 5400 t
(13)3322 5520 w
8 S1 f
(\261)3412 5520 w
8 H f
(14, 17)1 224 1 3457 5520 t
10 PA f
(process)3122 5640 w
(entry point)1 495 1 3197 5760 t
8 H f
( 20)1 112( 2:)1 111(1: 4, 14,)2 290 3 3786 5760 t
10 PA f
(image)3197 5880 w
8 H f
( 1)1 67( 2:)1 111(1: 1,)1 156 3 3562 5880 t
8 S1 f
(\261)3896 5880 w
8 H f
(2)3941 5880 w
10 PA f
(virtual addressing)1 809 1 3197 6000 t
8 H f
(2: 2)1 134 1 4100 6000 t
10 PA f
(processor-speci\256c)3122 6120 w
8 H f
(2: 10)1 179 1 4003 6120 t
10 PA f
(processor-speci\256c information)1 1340 1 3122 6240 t
8 H f
(1: 4, 6)2 223 1 4556 6240 t
8 S1 f
(\261)4779 6240 w
8 H f
(8, 11)1 179 1 4824 6240 t
8 S1 f
(\261)5003 6240 w
8 H f
(12,)5048 6240 w
(18)3322 6360 w
8 S1 f
(\261)3412 6360 w
8 H f
( 1, 3, 7, 11, 14, 16)6 647( 2:)1 111(19, 21,)1 246 3 3457 6360 t
8 S1 f
(\261)4461 6360 w
8 H f
(17, 19)1 224 1 4506 6360 t
10 PA f
(program header)1 719 1 3122 6480 t
8 H f
(2: 2)1 134 1 3935 6480 t
10 PA f
(program interpreter)1 891 1 3122 6600 t
8 H f
( 10)1 112( 2:)1 111(1: 14,)1 201 3 4107 6600 t
10 PA f
(program loading)1 752 1 3122 6720 t
8 H f
(2: 1, 7)2 223 1 3968 6720 t
9 PB f
( Formats Speci\256cation, Version 1.1)4 1413( Portable)1 851(Tool Interface Standards \(TIS\))3 1249 3 658 7324 t
9 R f
(I-3)5233 7324 w
cleartomark
showpage
restore
%%EndPage: 3 58
%%Page: 4 59
save
mark
59 pagesetup
9 HB f
(ELF: Executable and Linkable Format)4 1605 1 540 540 t
5400 540 2217 540 Dl
10 CW f
(p u s h l)4 280 1 538 1020 t
10 PA f
(instruction)840 1020 w
8 H f
(2: 17)1 179 1 1415 1020 t
8 S1 f
(\261)1594 1020 w
8 H f
(18)1639 1020 w
10 CW f
(p u t c)3 225 1 538 1140 t
8 H f
(3: 1)1 134 1 854 1140 t
10 CW f
(p u t c)3 225 1 538 1260 t
10 PA f
(\(BA)760 1260 w
10 S f
(_)932 1260 w
10 PA f
(LIB\))982 1260 w
8 H f
(3: 2)1 134 1 1265 1260 t
10 CW f
(p u t c h a r)6 390 1 538 1380 t
8 H f
(3: 1)1 134 1 1019 1380 t
10 CW f
(p u t e n v)5 335 1 538 1500 t
8 H f
(3: 1)1 134 1 964 1500 t
10 CW f
(p u t s)3 225 1 538 1620 t
8 H f
(3: 1)1 134 1 854 1620 t
10 CW f
(p u t w)3 225 1 538 1740 t
8 H f
(3: 1)1 134 1 854 1740 t
16 H f
(Q)740 2100 w
10 CW f
(q s o r t)4 280 1 538 2280 t
8 H f
(3: 1)1 134 1 909 2280 t
16 H f
(R)740 2640 w
10 CW f
(r a i s e)4 280 1 538 2820 t
8 H f
(3: 1)1 134 1 909 2820 t
10 CW f
(r a n d)3 225 1 538 2940 t
8 H f
(3: 1)1 134 1 854 2940 t
10 PA f
(relocatable \256le)1 644 1 540 3060 t
8 H f
(1: 1)1 134 1 1278 3060 t
10 PA f
(relocation, see object \256le)3 1075 1 540 3180 t
8 H f
(1: 21)1 179 1 1709 3180 t
10 CW f
(r e w i n d)5 335 1 538 3300 t
8 H f
(3: 1)1 134 1 964 3300 t
16 H f
(S)740 3660 w
10 CW f
(s c a n f)4 280 1 538 3840 t
8 H f
(3: 1)1 134 1 909 3840 t
10 PA f
(section, object \256le)2 780 1 540 3960 t
8 H f
(2: 7)1 134 1 1414 3960 t
10 PA f
(segment)540 4080 w
(dynamic)615 4200 w
8 H f
(2: 10)1 179 1 1095 4200 t
8 S1 f
(\261)1274 4200 w
8 H f
(11)1319 4200 w
10 PA f
(object \256le)1 421 1 615 4320 t
8 H f
(2: 1)1 134 1 1130 4320 t
8 S1 f
(\261)1264 4320 w
8 H f
(2)1309 4320 w
10 PA f
(permissions)615 4440 w
8 H f
(2: 8)1 134 1 1242 4440 t
10 PA f
(process)615 4560 w
8 H f
(2: 1, 7, 10, 15)4 491 1 1040 4560 t
8 S1 f
(\261)1531 4560 w
8 H f
(16)1576 4560 w
10 PA f
(program header)1 719 1 615 4680 t
8 H f
(2: 2)1 134 1 1428 4680 t
10 CW f
(s e t b u f)5 335 1 538 4800 t
8 H f
(3: 1)1 134 1 964 4800 t
10 CW f
(s e t j m p)5 335 1 538 4920 t
8 H f
(3: 1)1 134 1 964 4920 t
10 PA f
(set-user ID programs)2 938 1 540 5040 t
8 H f
(2: 16)1 179 1 1572 5040 t
10 CW f
(s e t v b u f)6 390 1 538 5160 t
8 H f
(3: 1)1 134 1 1019 5160 t
10 PA f
(shared library \(see shared object \256le\))5 1622 1 540 5280 t
(shared object \256le)2 745 1 540 5400 t
8 H f
(1: 1)1 134 1 1379 5400 t
10 PA f
(functions)615 5520 w
8 H f
(1: 19)1 179 1 1121 5520 t
10 PA f
(see also dynamic linking)3 1090 1 615 5640 t
8 H f
(2: 10)1 179 1 1799 5640 t
10 PA f
(see also object \256le)3 785 1 615 5760 t
8 H f
(2: 10)1 179 1 1494 5760 t
10 PA f
(segments)615 5880 w
8 H f
(2: 9)1 134 1 1124 5880 t
10 PA f
(shell scripts)1 521 1 540 6000 t
8 H f
(1: 1)1 134 1 1155 6000 t
10 CW f
(s l e e p)4 280 1 538 6120 t
8 H f
(3: 1)1 134 1 909 6120 t
10 CW f
(s p r i n t f)6 390 1 538 6240 t
8 H f
(3: 1)1 134 1 1019 6240 t
10 CW f
(s r a n d)4 280 1 538 6360 t
8 H f
(3: 1)1 134 1 909 6360 t
10 CW f
(s s c a n f)5 335 1 538 6480 t
8 H f
(3: 1)1 134 1 964 6480 t
10 CW f
(s t r c a t)5 335 1 538 6600 t
8 H f
(3: 1)1 134 1 964 6600 t
10 CW f
(s t r c h r)5 335 1 538 6720 t
8 H f
(3: 1)1 134 1 964 6720 t
10 CW f
(s t r c m p)5 335 1 3002 1020 t
8 H f
(3: 1)1 134 1 3428 1020 t
10 CW f
(s t r c p y)5 335 1 3002 1140 t
8 H f
(3: 1)1 134 1 3428 1140 t
10 CW f
(s t r c s p n)6 390 1 3002 1260 t
8 H f
(3: 1)1 134 1 3483 1260 t
10 CW f
(s t r d u p)5 335 1 3002 1380 t
8 H f
(3: 1)1 134 1 3428 1380 t
10 PA f
(string table, see object \256le)4 1132 1 3004 1500 t
8 H f
(1: 16)1 179 1 4230 1500 t
10 CW f
(s t r l e n)5 335 1 3002 1620 t
8 H f
(3: 1)1 134 1 3428 1620 t
10 CW f
(s t r n c a t)6 390 1 3002 1740 t
8 H f
(3: 1)1 134 1 3483 1740 t
10 CW f
(s t r n c m p)6 390 1 3002 1860 t
8 H f
(3: 1)1 134 1 3483 1860 t
10 CW f
(s t r n c p y)6 390 1 3002 1980 t
8 H f
(3: 1)1 134 1 3483 1980 t
10 CW f
(s t r p b r k)6 390 1 3002 2100 t
8 H f
(3: 1)1 134 1 3483 2100 t
10 CW f
(s t r r c h r)6 390 1 3002 2220 t
8 H f
(3: 1)1 134 1 3483 2220 t
10 CW f
(s t r s p n)5 335 1 3002 2340 t
8 H f
(3: 1)1 134 1 3428 2340 t
10 CW f
(s t r s t r)5 335 1 3002 2460 t
8 H f
(3: 1)1 134 1 3428 2460 t
10 CW f
(s t r t o d)5 335 1 3002 2580 t
8 H f
(3: 1)1 134 1 3428 2580 t
10 CW f
(s t r t o k)5 335 1 3002 2700 t
8 H f
(3: 1)1 134 1 3428 2700 t
10 CW f
(s t r t o l)5 335 1 3002 2820 t
8 H f
(3: 1)1 134 1 3428 2820 t
10 CW f
(s t r t o u l)6 390 1 3002 2940 t
8 H f
(3: 1)1 134 1 3483 2940 t
10 CW f
(s w a b)3 225 1 3002 3060 t
8 H f
(3: 1)1 134 1 3318 3060 t
10 PA f
(symbol names, C and assembly)4 1386 1 3004 3180 t
8 H f
(1: 17)1 179 1 4484 3180 t
10 PA f
(symbol table, see object \256le)4 1199 1 3004 3300 t
8 H f
(1: 17)1 179 1 4297 3300 t
10 PA f
(symbols)3004 3420 w
(absolute)3079 3540 w
8 H f
(1: 8)1 134 1 3545 3540 t
10 PA f
(binding)3079 3660 w
8 H f
(1: 18)1 179 1 3519 3660 t
10 PA f
(common)3079 3780 w
8 H f
(1: 8)1 134 1 3561 3780 t
10 PA f
(see also hash table)3 812 1 3079 3900 t
8 H f
(1: 14)1 179 1 3985 3900 t
10 PA f
(shared object \256le functions)3 1182 1 3079 4020 t
8 H f
(1: 19)1 179 1 4355 4020 t
10 PA f
(type)3079 4140 w
8 H f
(1: 18)1 179 1 3370 4140 t
10 PA f
(unde\256ned)3079 4260 w
8 H f
(1: 8)1 134 1 3628 4260 t
10 PA f
(value)3079 4380 w
8 H f
(1: 18, 20)2 313 1 3416 4380 t
10 PA f
(SYSTEM V)1 487 1 3004 4500 t
8 H f
(2: 7)1 134 1 3585 4500 t
16 H f
(T)3204 4860 w
10 CW f
(t c d r a i n)6 390 1 3002 5040 t
8 H f
(3: 1)1 134 1 3483 5040 t
10 CW f
(t c f l o w)5 335 1 3002 5160 t
8 H f
(3: 1)1 134 1 3428 5160 t
10 CW f
(t c f l u s h)6 390 1 3002 5280 t
8 H f
(3: 1)1 134 1 3483 5280 t
10 CW f
(t c g e t a t t r)8 500 1 3002 5400 t
8 H f
(3: 1)1 134 1 3593 5400 t
10 CW f
(t c g e t p g r p)8 500 1 3002 5520 t
8 H f
(3: 1)1 134 1 3593 5520 t
10 CW f
(t c g e t s i d)7 445 1 3002 5640 t
8 H f
(3: 1)1 134 1 3538 5640 t
10 CW f
(t c s e n d b r e a k)10 610 1 3002 5760 t
8 H f
(3: 1)1 134 1 3703 5760 t
10 CW f
(t c s e t a t t r)8 500 1 3002 5880 t
8 H f
(3: 1)1 134 1 3593 5880 t
10 CW f
(t c s e t p g r p)8 500 1 3002 6000 t
8 H f
(3: 1)1 134 1 3593 6000 t
10 CW f
(t d e l e t e)6 390 1 3002 6120 t
8 H f
(3: 1)1 134 1 3483 6120 t
10 CW f
(t e l l)3 225 1 3002 6240 t
8 H f
(3: 1)1 134 1 3318 6240 t
10 CW f
(t e m p n a m)6 390 1 3002 6360 t
8 H f
(3: 1)1 134 1 3483 6360 t
10 CW f
(t f i n d)4 280 1 3002 6480 t
8 H f
(3: 1)1 134 1 3373 6480 t
10 CW f
(t m p f i l e)6 390 1 3002 6600 t
8 H f
(3: 1)1 134 1 3483 6600 t
10 CW f
(t m p n a m)5 335 1 3002 6720 t
8 H f
(3: 1)1 134 1 3428 6720 t
9 R f
(I-4)540 7324 w
9 PB f
( Interface Standards \(TIS\))3 1059( Tool)1 443(Portable Formats Speci\256cation, Version 1.1)4 1758 3 1960 7324 t
cleartomark
showpage
restore
%%EndPage: 4 59
%%Page: 5 60
save
mark
60 pagesetup
9 HB f
3841 540 658 540 Dl
(ELF: Executable and Linkable Format)4 1605 1 3913 540 t
10 CW f
(t o a s c i i)6 390 1 656 1020 t
8 H f
(3: 1)1 134 1 1137 1020 t
10 CW f
(_ t o l o w e r)7 445 1 656 1140 t
8 H f
(3: 1)1 134 1 1192 1140 t
10 CW f
(t o l o w e r)6 390 1 656 1260 t
8 H f
(3: 1)1 134 1 1137 1260 t
10 CW f
(_ t o u p p e r)7 445 1 656 1380 t
8 H f
(3: 1)1 134 1 1192 1380 t
10 CW f
(t o u p p e r)6 390 1 656 1500 t
8 H f
(3: 1)1 134 1 1137 1500 t
10 CW f
(t s e a r c h)6 390 1 656 1620 t
8 H f
(3: 1)1 134 1 1137 1620 t
10 CW f
(t w a l k)4 280 1 656 1740 t
8 H f
(3: 1)1 134 1 1027 1740 t
10 CW f
(t z s e t)4 280 1 656 1860 t
8 H f
(3: 1)1 134 1 1027 1860 t
16 H f
(U)858 2220 w
10 PA f
(unde\256ned behavior)1 871 1 658 2400 t
8 H f
( 6)1 67( 2:)1 111(1: 10,)1 201 3 1623 2400 t
8 S1 f
(\261)2002 2400 w
8 H f
(7)2047 2400 w
10 PA f
(unde\256ned symbols)1 847 1 658 2520 t
8 H f
(1: 8)1 134 1 1599 2520 t
10 CW f
(u n g e t c)5 335 1 656 2640 t
8 H f
(3: 1)1 134 1 1082 2640 t
10 PA f
(uninitialized data)1 782 1 658 2760 t
8 H f
(2: 8)1 134 1 1534 2760 t
10 PA f
(unspeci\256ed property)1 928 1 658 2880 t
8 H f
(1: 2)1 134 1 1680 2880 t
8 S1 f
(\261)1814 2880 w
8 H f
( 2)1 67( 2:)1 111(3, 9, 11, 14,)3 424 3 1859 2880 t
8 S1 f
(\261)2461 2880 w
8 H f
(3, 5, 7)2 223 1 2506 2880 t
8 S1 f
(\261)2729 2880 w
8 H f
(8,)2774 2880 w
(14, 20)1 224 1 858 3000 t
16 H f
(V)858 3360 w
10 CW f
(v f p r i n t f)7 445 1 656 3540 t
8 H f
(3: 1)1 134 1 1192 3540 t
10 PA f
(virtual addressing)1 809 1 658 3660 t
8 H f
(2: 2)1 134 1 1561 3660 t
10 CW f
(v p r i n t f)6 390 1 656 3780 t
8 H f
(3: 1)1 134 1 1137 3780 t
10 CW f
(v s p r i n t f)7 445 1 656 3900 t
8 H f
(3: 1)1 134 1 1192 3900 t
16 H f
(W)858 4260 w
10 CW f
(w c s t o m b s)7 445 1 656 4440 t
8 H f
(3: 1)1 134 1 1192 4440 t
10 CW f
(w c t o m b)5 335 1 656 4560 t
8 H f
(3: 1)1 134 1 1082 4560 t
16 H f
(X)858 4920 w
10 CW f
(_ x f t w)4 280 1 656 5100 t
8 H f
(3: 1)1 134 1 1027 5100 t
8 S1 f
(\261)1161 5100 w
8 H f
(2)1206 5100 w
16 H f
(Z)858 5460 w
10 PA f
(zero, uninitialized data)2 1025 1 658 5640 t
8 H f
(2: 8)1 134 1 1777 5640 t
9 PB f
( Formats Speci\256cation, Version 1.1)4 1413( Portable)1 851(Tool Interface Standards \(TIS\))3 1249 3 658 7324 t
9 R f
(I-5)5233 7324 w
cleartomark
showpage
restore
%%EndPage: 5 60
%%Trailer
done
%%DocumentFonts: Helvetica-Bold Helvetica Palatino-Bold Times-Roman Palatino-Roman Courier Symbol Palatino-Italic
%%Pages: 60