Backup of today's work. Still awaiting a couple more editorial inputs.
[dwarf-doc.git] / dwarf5 / latexdoc / sectionversionnumbers.tex
1
2 \chapter[Section Version Numbers (Informative)]{DWARF Section Version Numbers (Informative)}
3 \label{app:dwarfsectionversionnumbersinformative}
4 \addtoindexx{version number!summary by section}
5
6 % The table format looks rather different that V4 and earlier
7 % as latex took up too much space and left no room for V5 
8 % or later.  The new format uses space more efficiently.
9
10 Most DWARF sections have a version number in the section
11 header. This version number is not tied to the DWARF standard
12 revision numbers, but instead is incremented when incompatible
13 changes to that section are made. The DWARF standard that
14 a producer is following is not explicitly encoded in the
15 file. Version numbers in the section headers are represented
16 as two byte unsigned integers. 
17
18 Table \refersec{tab:sectionversionnumbers}
19 shows what version
20 numbers are in use for each section. In that table:
21 \begin{itemize}
22 \setlength{\itemsep}{0em}
23 \item  \doublequote{V2} means \addtoindex{DWARF Version 2}, published July 27, 1993.
24 \item  \doublequote{V3} means \addtoindex{DWARF Version 3}, published December 20, 2005.
25 \item  \doublequote{V4} means \addtoindex{DWARF Version 4}, published June 10, 2010.
26 \item  \doublequote{V5} means \addtoindex{DWARF Version 5}\footnote{Higher numbers are reserved for future use.}, published 
27                         \ifthenelse{\boolean{isdraft}}{\textit{<to be determined>}}{\docdate}.
28 \end{itemize}
29
30 There are sections with no version number encoded in them;
31 they are only accessed via the 
32 \dotdebuginfo{} 
33 sections and so an incompatible change in those sections'
34 format would be represented by a change in the 
35 \dotdebuginfo{} section version number.
36
37 \needlines{10}
38 \begin{centering}
39 \setlength{\extrarowheight}{0.1cm}
40 \begin{longtable}{lcccc}
41   \caption{Section version numbers} \label{tab:sectionversionnumbers} \\
42   \hline 
43   \bfseries Section Name &\bfseries V2 &\bfseries V3 &\bfseries V4 
44                          &\bfseries V5 \\ 
45   \hline
46 \endfirsthead
47    \bfseries Section Name &\bfseries V2 &\bfseries V3 &\bfseries V4 &\bfseries V5 \\ \hline
48 \endhead
49   \hline \emph{Continued on next page}
50 \endfoot
51   \hline
52 \endlastfoot
53 \dotdebugabbrev{}   & * & * & * & * \\
54 \dotdebugaddr{}     & - & - & - & 5 \\
55 \dotdebugaranges{}  & 2 & 2 & 2 & 2 \\
56 \dotdebugframe{}\footnote{\textit{For the \dotdebugframe{} section, version 2 is unused.}}
57                     & 1 & 3 & 4 & 4 \\
58 \dotdebuginfo{}     & 2 & 3 & 4 & 5 \\
59 \dotdebugline{}     & 2 & 3 & 4 & 5 \\
60 \bbeb\dotdebuglinestr{}  & - & - & - & * \\
61 \dotdebugloc{}      & * & * & * & - \\
62 \dotdebugloclists{} & - & - & - & 5 \\
63 \dotdebugmacinfo{}  & * & * & * & - \\*
64 \dotdebugmacro{}    & - & - & - & 5 \\
65 \dotdebugnames{}    & - & - & - & 5 \\
66 \dotdebugpubnames{} & 2 & 2 & 2 & - \\
67 \dotdebugpubtypes{} & - & 2 & 2 & - \\
68 \dotdebugranges{}   & - & * & * & - \\
69 \dotdebugrnglists{} & - & - & - & 5 \\
70 \dotdebugstr{}      & * & * & * & * \\
71 \dotdebugstroffsets & - & - & - & 5 \\
72 \dotdebugsup        & - & - & - & 5 \\
73 \dotdebugtypes{}    & - & - & 4 & - \\
74 \\
75 \hspace{3.5cm}\textit{(split object sections)}
76 \\
77 \dotdebugabbrevdwo  & - & - & - & * \\
78 \dotdebuginfodwo    & - & - & - & 5 \\
79 \dotdebuglinedwo    & - & - & - & 5 \\
80 \dotdebugloclistsdwo& - & - & - & 5 \\
81 \dotdebugmacrodwo   & - & - & - & 5 \\
82 \dotdebugrnglistsdwo& - & - & - & 5 \\
83
84 \dotdebugstrdwo     & - & - & - & * \\
85 \dotdebugstroffsetsdwo 
86                     & - & - & - & 5 \\
87
88 \hspace{3.5cm}\textit{(package file sections)}
89 \\
90 \dotdebugcuindex{}  & - & - & - & 5 \\
91 \dotdebugtuindex{}  & - & - & - & 5 \\
92 \end{longtable}
93 \end{centering}
94
95 \needlines{8}
96 Notes:
97 \begin{itemize}
98 \item  \doublequote{*} means that a version number is not applicable
99 (the section does not include a header or the section's header does not include a version).
100 \item  \doublequote{-} means that the section was not defined in that
101 version of the DWARF standard.
102 \item  The version numbers for corresponding .debug\_<kind> and .debug\_<kind>.dwo 
103 sections are the same.
104 \end{itemize}
105
106