%-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