HP Fortran Programmer Guide (766160-001, March 2014)

+DA2.0W is specified), the +Zoption is on by default. This
is the only PIC option supported for 64-bit executables.
NOTE: To not generate position-independent code for
64-bit executables, specify the -W1, -noshared option:
Symbol binding options
The following -B options are recognized by HP Fortran to specify whether references to global
symbols may be resolved to symbols defined in the current translation unit, or whether they must
be assumed to be potentially resolved to symbols defined in another load module.
All -B options are applied in a ‘left to right’ order so that options at the end of a string may
supercede those that appear earlier in the string.
The named symbols are assigned the default export class.
These symbols may be imported or exported outside of the
-Bdefault=symbol[,symbol...]
current load module. The compiler will access tentative
symbols through the linkage table. Any symbol that is not
assigned to another export class through use of another
-B option (or the deprecated +O[no]extern option) will
have the default on a per-symbol basis to specify exceptions
to global -Bprotected, -Bhidden, or-Bextern options.
The file indicated by filename contains a list of symbols,
separated by spaces or newlines. These symbols are
assigned the default export class.
-Bdefault:filename
The named symbols, or all undefined symbols if no list is
provided, are assigned the default export class.
-Bextern [=symbol [,symbol...]]
Additionally, the compiler will inline the import stub for
calls to these symbols. No compile-time binding of these
symbols will be done. All references to these symbols will
be through the linkage table, so an unnecessary
performance penalty will occur if -Bextern is applied to
a listed symbol that is resolved in the same load module.
The file indicated by filename contains a list of symbols,
separated by spaces or newlines. These symbols are
-Bextern:filename
assigned the default export class. Additionally, the compiler
will inline the import stub for calls to these symbols. No
compile-time binding of these symbols will be done. All
references to these symbols will be through the linkage
table, so an unnecessary performance penalty will occur
if -Bextern is applied to a symbol that is resolved in the
same load module.
The named symbols, or all symbols if no symbols are
specified, are assigned the hidden export class. The hidden
Bhidden [=symbol [,symbol...]]
export class is similar to the protected export class. 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. In addition, 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 impliesW1,
-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 -W1,-a option.
Symbol binding options 37