HP aC++/HP C Programmer's Guide (B3901-90036; A.06.26; September 2011)
hidden symbols will not be exported outside the current load module. The linker may
eliminate them from a shared library, but in an executable, they remain accessible to
the debugger unless +Oprocelim is also specified.
When used with no symbol list, -Bhidden implies -Wl,-aarchive_shared, causing
the linker to prefer an archive library over a shared library if one is available. This can
be overridden by following the -Bhidden option with a subsequent -Wl,-a option.
Usage:
-Bhidden=symbol[,symbol...]
The named symbols, or all symbols if no symbols are specified, are assigned the hidden
export class.
-Bhidden:filename
The file indicated by filename is expected to contain a list of symbols separated by
spaces or newlines. These symbols are assigned the hidden export class.
-Bhidden_def
-Bhidden_def
This option is the same as -Bhidden, but only locally defined (non-tentative) symbols,
without __declspec(dllexport), are assigned the hidden export class.
-Bprotected
-Bprotected[=symbol[,symbol...]]
The specified symbols, or all symbols if no symbols are specified, are assigned the
protected export class. That means these symbols will not be preempted by symbols from
other load modules, so the compiler may bypass the linkage table for both code and
data references and bind them to locally defined code and data symbols.
When used with no symbol list, -Bprotected implies -Wl,-aarchive_shared,
causing the linker to prefer an archive library over a shared library, if one is available.
This can be overridden by following the -Bprotected option with a subsequent -Wl,-a
option.
Usage:
-Bprotected:filename
The file indicated by filename contains a list of symbols, separated by spaces or
newlines. These symbols are assigned the protected export class.
-Bprotected_data
-Bprotected_data
The -Bprotected_data option marks only data symbols as having the protected export
class.
Symbol Binding Options 109