[llvm-dev] weak definitions in LTO

Zhao, Weiming via llvm-dev llvm-dev at lists.llvm.org
Tue Dec 8 15:04:55 PST 2015


I have a question regarding the behavior of weak symbol resolution in LTO:

Suppose there are weak definitions in both the source code and some 
native lib.
In non-LTO path, we will use the version from source code.
In LTO path, LLVM may discard the definition as it has "linkeonce" 
linkage type. So the native version will be selected by linker.
Now, non-LTO and LTO build may have different behavior.

The question is do we need to make non-LTO and LTO have the same 
behavior? If so, the LTO part needs to create pseudo uses (or some other 
mechanism) to keep the symbol from deletion.


More information about the llvm-dev mailing list