forked from OSchip/llvm-project
70f11d7589
The fallback atom was used only when it's searching for a symbol in a library; if an undefined symbol was not found in a library, the LLD looked for its fallback symbol in the library. Although it worked in most cases, because symbols with fallbacks usually occur only in OLDNAMES.LIB (a standard library), that behavior was incompatible with link.exe. This patch fixes the issue so that the semantics is the same as MSVC's link.exe The new (and correct, I believe) behavior is this: - If there's no definition for an undefined atom, replace the undefined atom with its fallback and then proceed (e.g. look in the next file or stop linking as usual.) Weak External symbols are underspecified in the Microsoft PE/COFF spec. However, as long as I observed the behavior of link.exe, this seems to be what we want for compatibility. Differential Revision: http://llvm-reviews.chandlerc.com/D2162 llvm-svn: 195269 |
||
---|---|---|
.. | ||
absolute-basic.objtxt | ||
absolute-local.objtxt | ||
archive-basic.objtxt | ||
archive-chain.objtxt | ||
archive-tentdef-search.objtxt | ||
auto-hide-coalesce.objtxt | ||
constants-coalesce.objtxt | ||
cstring-coalesce.objtxt | ||
custom-section.objtxt | ||
dead-strip-attributes.objtxt | ||
dead-strip-basic.objtxt | ||
dead-strip-globals.objtxt | ||
empty.objtxt | ||
error-atom-attribute.objtxt | ||
error-atom-content-byte-value.objtxt | ||
error-atom-content-bytes.objtxt | ||
error-atom-type.objtxt | ||
error-atom-undefined-wrong-attribue.objtxt | ||
error-duplicate-absolutes.objtxt | ||
error-file-attribute.objtxt | ||
error-fixup-attribute.objtxt | ||
error-fixup-target.objtxt | ||
fixups-addend.objtxt | ||
fixups-dup-named.objtxt | ||
fixups-named.objtxt | ||
fixups-unnamed.objtxt | ||
ingroup-test-big.objtxt | ||
ingroup-test-loop.objtxt | ||
ingroup-test-with-layout-after.objtxt | ||
ingroup-test.objtxt | ||
inline-coalesce.objtxt | ||
layout-error-test.objtxt | ||
layout-transitivity.objtxt | ||
layoutafter-test.objtxt | ||
layoutbefore-test.objtxt | ||
multiple-def-error.objtxt | ||
pass-got-basic.objtxt | ||
pass-stubs-basic.objtxt | ||
permissions.objtxt | ||
section-position.objtxt | ||
shared-library-basic.objtxt | ||
shared-library-coalesce.objtxt | ||
tent-merge.objtxt | ||
undef-coalesce-error.objtxt | ||
undef-coalesce.objtxt | ||
undef-fallback.objtxt | ||
undef-weak-coalesce.objtxt | ||
weak-coalesce.objtxt |