HomePhabricator

MC: Add support for BigObj
Audit RequiredrL217812

Description

MC: Add support for BigObj

Teach WinCOFFObjectWriter how to write -mbig-obj style object files;
these object files allow for more sections inside an object file.

Our support for BigObj is notably different from binutils and cl: we
implicitly upgrade object files to BigObj instead of asking the user to
compile the same file *again* but with another flag. This matches up
with how LLVM treats ELF variants.

This was tested by forcing LLVM to always emit BigObj files and running
the entire test suite. A specific test has also been added.

I've lowered the maximum number of sections in a normal COFF file,
VS "14" CTP 3 supports no more than 65279 sections. This is important
otherwise we might not switch to BigObj quickly enough, leaving us with
a COFF file that we couldn't link.

yaml2obj support is all that remains to implement.

Differential Revision: http://reviews.llvm.org/D5349

Details

Auditors
grosbach
Committed
majnemerSep 15 2014, 12:42 PM
Differential Revision
D5349: MC: Add support for BigObj
Parents
rL217811: Reduce code duplication a bit more. NFC.
Branches
Unknown
Tags
Unknown

Event Timeline

This commit now requires audit.Jan 2 2018, 2:58 AM