summaryrefslogtreecommitdiff
path: root/test/fewsecs.asm
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 /test/fewsecs.asm
parent437e0ffa01505d173a8b9cfe2decf74f2e9795a5 (diff)
downloadnasm-b2004511dddeefd7c0866a33ceaa5fa1a6ee0510.tar.gz
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 'test/fewsecs.asm')
-rw-r--r--test/fewsecs.asm2
1 files changed, 2 insertions, 0 deletions
diff --git a/test/fewsecs.asm b/test/fewsecs.asm
new file mode 100644
index 00000000..85731acf
--- /dev/null
+++ b/test/fewsecs.asm
@@ -0,0 +1,2 @@
+%assign NSECS 64
+%include "manysecs.asm"