aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2019-02-26 00:02:35 -0800
committerH. Peter Anvin <hpa@zytor.com>2019-02-26 00:02:35 -0800
commitb2004511dddeefd7c0866a33ceaa5fa1a6ee0510 (patch)
treebe9d710d81f6c985541f79a44919d8830bb04eab /doc
parent437e0ffa01505d173a8b9cfe2decf74f2e9795a5 (diff)
downloadnasm-b2004511dddeefd7c0866a33ceaa5fa1a6ee0510.tar.gz
nasm-b2004511dddeefd7c0866a33ceaa5fa1a6ee0510.tar.xz
nasm-b2004511dddeefd7c0866a33ceaa5fa1a6ee0510.zip
ELF: handle more than 32,633 sections
Dead code elimination in ELF uses separate ELF sections for every functions or data items that may be garbage collected. This can end up being more than 32,633 sections which, when the ELF internal and relocation sections are added in, can exceed the legacy ELF maximum of 65,279 sections. Newer versions of the ELF specification has added support for much larger number of sections by putting a place holder value (usually SHN_XINDEX == 0xffff, but 0 in some cases) into fields where the section index is a 16-bit value, and storing the full value in a diffent place: the program header uses entries in section header 0, the symbol table uses an auxiliary segment with the additional indicies; the section header did not need it as the sh_link field is already 32 (or 64) bits long. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'doc')
-rw-r--r--doc/changes.src2
1 files changed, 2 insertions, 0 deletions
diff --git a/doc/changes.src b/doc/changes.src
index 6fd19943..1e67bec5 100644
--- a/doc/changes.src
+++ b/doc/changes.src
@@ -15,6 +15,8 @@ after a real error.
\b Add support for the \c{merge} and \c{strings} attributes on ELF
sections. See \k{elfsect}.
+\b Handle more than 32,633 sections in ELF.
+
\S{cl-2.14.02} Version 2.14.02
\b Fix crash due to multiple errors or warnings during the code