Specifies the default visibility for global symbols or the visibility for symbols in a file.
Windows: None
Linux: Data > Default Symbol Visibility
Mac OS X: None
IA-32, Intel® 64 architectures
Linux and Mac OS X: | -fvisibility=keyword -fvisibility-keyword=filename |
Windows: | None |
keyword |
Specifies the visibility setting. Possible values are:
|
filename |
Is the pathname of a file containing the list of symbols whose visibility you want to set. The symbols must be separated by whitespace (spaces, tabs, or newlines). |
-fvisibility=default |
The compiler sets visibility of symbols to default. |
This option specifies the default visibility for global symbols (syntax -fvisibility=keyword) or the visibility for symbols in a file (syntax -fvisibility-keyword=filename).
Visibility specified by -fvisibility-keyword=filename overrides visibility specified by -fvisibility=keyword for symbols specified in a file.
Option |
Description |
---|---|
-fvisibility=default |
Sets visibility of symbols to default. This means other components can reference the symbol, and the symbol definition can be overridden (preempted) by a definition of the same name in another component. |
-fvisibility=extern |
Sets visibility of symbols to extern. This means the symbol is treated as though it is defined in another component. It also means that the symbol can be overridden by a definition of the same name in another component. |
-fvisibility=hidden |
Sets visibility of symbols to hidden. This means that other components cannot directly reference the symbol. However, its address may be passed to other components indirectly. |
-fvisibility=protected |
Sets visibility of symbols to protected. This means other components can reference the symbol, but it cannot be overridden by a definition of the same name in another component. This value is not available on Mac OS* X systems. |
If an -fvisibility option is specified more than once on the command line, the last specification takes precedence over any others.
If a symbol appears in more than one visibility filename, the setting with the least visibility takes precedence.
The following shows the precedence of the visibility settings (from greatest to least visibility):
extern
default
protected
hidden
Note that extern visibility only applies to functions. If a variable symbol is specified as extern, it is assumed to be default.
None
A file named prot.txt contains symbols a, b, c, d, and e. Consider the following:
-fvisibility-protected=prot.txt
This option sets protected visibility for all the symbols in the file. It has the same effect as specifying fvisibility=protected in the declaration for each of the symbols.
Copyright © 1996-2011, Intel Corporation. All rights reserved.