HomePhabricator

COFF: Fix ordinal-only delay-imported symbols.
Audit RequiredrL241318

Description

COFF: Fix ordinal-only delay-imported symbols.

DLLs can export symbols only by ordinal, and DLLs are also able to be
delay-loaded. The combination of the two is valid. I didn't expect
that combination. This patch implements that feature.

With this patch, LLD is now able to link a working executable of Chrome
for 64-bit debug build. The browser seemed to be working fine. Chrome is
good for testing because of its variety and size. It contains various
open-source libraries written by various people. The largest file in
Chrome is chrome.dll whose size is 496MB. LLD can link it in 24 seconds.
MSVC linker takes 48 seconds. So it is exactly 2x faster. (I measured
that with debug info and ICF being turned off.)

With this achievement, I think I can say that the new COFF linker is
now mostly feature complete for x86-64 Windows. I believe there are
still many lingering bugs, though.

Details

Auditors
Bigcheese
Committed
ruiuJul 2 2015, 9:32 PM
Parents
rL241317: Typo fixes.
Branches
Unknown
Tags
Unknown