The first:
Help -
symbolicAssigns the
symbolic attribute to most symbols exported without an explicit attribute. For more information, see "Attributes of Exported Symbols" that follows. This is the default when the svr4 option is used; otherwise, the default is the
symbolic- option.
Attributes of Exported Symbols
When you use run-time linking, a reference to a symbol in the same module can only be rebound if the symbol is exported with the proper attribute. References to symbols with the
symbolic attribute cannot be rebound. References to symbols with the
nosymbolic attribute can be rebound. References to symbols with the
nosymbolic- attribute can be rebound if the symbols are variables. For function symbols, calls using a function pointer can be rebound, while direct function calls cannot be rebound. The
nosymbolic- attribute is the default and is provided for compatibility with previous versions of the operating system, but its use is not recommended.
If you are not using the run-time linker,
avoid using the
nosymbolic attribute because intra-module function calls will be made indirectly through a function descriptor using global-linkage code. Otherwise, the attribute of exported symbols has no effect for modules used with programs that do not use the run-time linker.
You can specify an explicit export attribute for symbols listed in an export file. Most symbols without an explicit attribute are exported with the default export attribute, as specified with the
symbolic,
nosymbolic, or
nosymbolic- options.
The
weak export attribute will mark the associated symbol's mapping type with L_WEAK in the loader section.
Imported symbols may only have the
weak export attribute. If a symbol is imported from another module, all references to the symbol can be rebound. However, if a symbol is imported at a fixed address, all references are bound to this fixed address and cannot be rebound by the run-time linker. The system loader must resolve deferred imports. The run-time linker never resolves or rebinds references to deferred imports.
For exports of non-imported symbols, the following rules are used.
- If a symbol has the list attribute, it is listed in the loader section symbol table, but the L_EXPORT flag is not set in the symbol table entry. The run-time linker ignores such symbols.
- If a symbol was exported with an explicit attribute, the explicit attribute is used.
- If the symbol is a BSS symbol, it is exported with the nosymbolic attribute.
- Otherwise, the symbol is exported with the global attribute, as specified by the symbolic, nosymbolic, or nosymbolic- option. The default global attribute is nosymbolic-.
The Second, some AIX use SunWSPro CC, you did not say which cc, with -B:
A P P E N D I X B - C Compiler Options Reference but no symbolic.
Maybe ld is patronizing you and taking -Bsymbolic as -bsymbolic? Gnu GCC has it:
Using LD, the GNU linker