Weak symbol attribute directive
Format
.WEAK symbol-list
1 – Parameter
symbol-list
A list of identifiers separated by commas.
2 – Description
.WEAK specifies symbols that are either defined externally in
another module or defined globally in the current module. .WEAK
suppresses any object library search for the symbol.
When .WEAK specifies a symbol that is not defined in the current
module, the symbol is externally defined. If the linker finds the
symbol's definition in another module, it uses that definition.
If the linker does not find an external definition, the symbol
has a value of 0 and the linker does not report an error. The
linker does not search a library for the symbol, but if a module
brought in from a library for another reason contains the symbol
definition, the linker uses it.
When .WEAK specifies a symbol that is defined in the current
module, the symbol is considered to be globally defined. However,
if this module is inserted in an object library, this symbol
is not inserted in the library's symbol table. Consequently,
searching the library at link time to resolve this symbol does
not cause the module to be included.
3 – Example
.WEAK A,B,C
A:: .WORD 5 ; A and B are weak global definitions
B:: .QUAD 6
.ADDRESS C ; C is a weak external reference