llvm-project/lld/lib
Rui Ueyama e05b629d39 Use NativeReferenceIvarsV2 if necessary.
NativeReferenceIvarsV1 cannot handle more than 65535 relocation targets
because its field to point to the target table is of type uint16_t. Because
of that limitation, the LLD couldn't link a file containing more than 65535
relocations. 65535 is not a big number - the LLD couldn't even link itself
with V1.

This patch solves the issue by adding NativeReferenceIvarsV2 support. The
new structure has more bits for the target table, so it can handle a large
number of relocatinos.

V2 structure is larger than V1. In order to prevent file bloating, V2 format
is used only when the resulting file cannot be represented in V1 format. The
writer and the reader support both V1 and V2 formats.

Differential Revision: http://llvm-reviews.chandlerc.com/D2217

llvm-svn: 195270
2013-11-20 20:54:18 +00:00
..
Core Fix Weak External symbol handling. 2013-11-20 20:51:55 +00:00
Driver [PECOFF] Ignore /tlbid, /tlbout, /idlout and /ignoreigl for now. 2013-11-19 05:55:08 +00:00
Passes Use early continue. Style fix. No functionality change. 2013-11-19 06:10:13 +00:00
ReaderWriter Use NativeReferenceIvarsV2 if necessary. 2013-11-20 20:54:18 +00:00
CMakeLists.txt