This is an archive of the discontinued LLVM Phabricator instance.

[PECOFF] Add support for bigobj
ClosedPublic

Authored by majnemer on Sep 9 2014, 5:16 PM.

Details

Summary

lld shouldn't directly use the COFF header nor should it use raw
coff_symbols. Instead, query the header properties from the
COFFObjectFile and use COFFSymbolRef to abstractly reference COFF
symbols.

This is just enough to get lld compiling with the changes to
llvm::object. Bigobj specific testing will come later.

Diff Detail

Repository
rL LLVM

Event Timeline

majnemer updated this revision to Diff 13502.Sep 9 2014, 5:16 PM
majnemer retitled this revision from to [PECOFF] Add support for bigobj.
majnemer updated this object.
majnemer added a reviewer: ruiu.
majnemer added a subscriber: Unknown Object (MLST).
ruiu added inline comments.Sep 9 2014, 5:24 PM
lib/ReaderWriter/PECOFF/ReaderCOFF.cpp
364 ↗(On Diff #13502)

Is this change valid? It depended on the fact that you can identify a symbol by its address, but I don't think after your change COFFSymbolRef is not guaranteed to be unique for a symbol.

majnemer added inline comments.Sep 9 2014, 5:42 PM
lib/ReaderWriter/PECOFF/ReaderCOFF.cpp
364 ↗(On Diff #13502)

I have COFFSymbolRef an operator< in LLVM.

ruiu accepted this revision.Sep 9 2014, 7:46 PM
ruiu edited edge metadata.

LGTM

This revision is now accepted and ready to land.Sep 9 2014, 7:46 PM
majnemer closed this revision.Sep 10 2014, 6:01 AM
majnemer updated this revision to Diff 13536.

Closed by commit rL217497 (authored by @majnemer).