mirror of
https://github.com/intel/llvm.git
synced 2026-01-20 10:58:11 +08:00
[Docs] Document --lto-whole-program-visibility
Summary: Documents interaction of linker option added in D71913 with LTO visibility. Reviewers: pcc Subscribers: inglorion, hiraditya, steven_wu, dexonsmith, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D75655
This commit is contained in:
@@ -35,6 +35,16 @@ other classes receive hidden LTO visibility. Classes with internal linkage
|
||||
(e.g. classes declared in unnamed namespaces) also receive hidden LTO
|
||||
visibility.
|
||||
|
||||
During the LTO link, all classes with public LTO visibility will be refined
|
||||
to hidden LTO visibility when the ``--lto-whole-program-visibility`` lld linker
|
||||
option is applied (``-plugin-opt=whole-program-visibility`` for gold). This flag
|
||||
can be used to defer specifying whether classes have hidden LTO visibility until
|
||||
link time, to allow bitcode objects to be shared by different LTO links.
|
||||
Due to an implementation limitation, symbols associated with classes with hidden
|
||||
LTO visibility may still be exported from the binary when using this flag. It is
|
||||
unsafe to refer to these symbols, and their visibility may be relaxed to hidden
|
||||
in a future compiler release.
|
||||
|
||||
A class defined in a translation unit built without LTO receives public
|
||||
LTO visibility regardless of its object file visibility, linkage or other
|
||||
attributes.
|
||||
|
||||
Reference in New Issue
Block a user