COFF: Support import-by-ordinal DLL imports.
authorRui Ueyama <ruiu@google.com>
Mon, 1 Jun 2015 21:05:27 +0000 (21:05 +0000)
committerRui Ueyama <ruiu@google.com>
Mon, 1 Jun 2015 21:05:27 +0000 (21:05 +0000)
commitfd99e01b91dcb33c1459cf84d0d655b340177d09
tree56cf3b6a0b8933c1691d8d8221fa375294b0e28e
parentc2abdd915205d61abce3d7a9327b592c84212927
COFF: Support import-by-ordinal DLL imports.

Symbols exported by DLLs can be imported not by name but by
small number or ordinal. Usually, symbols have both ordinals
and names, and in that case ordinals are called "hints" and
used by the loader as hints.

However, symbols can have only ordinals. They are called
import-by-ordinal symbols. You need to manage ordinals by hand
so that they will never change if you choose to use the feature.
But it's supposed to make dynamic linking faster because
it needs no string comparison. Not sure if that claim still
stands in year 2015, though. Anyways, the feature exists,
and this patch implements that.

llvm-svn: 238780
lld/COFF/Chunks.cpp
lld/COFF/Chunks.h
lld/COFF/InputFiles.cpp
lld/COFF/Symbols.h
lld/test/COFF/Inputs/hello64.asm
lld/test/COFF/Inputs/hello64.obj
lld/test/COFF/Inputs/std64.lib
lld/test/COFF/imports.test