-bsymbolic vs -Bsymbolic


 
Thread Tools Search this Thread
Operating Systems AIX -bsymbolic vs -Bsymbolic
# 1  
Old 03-29-2011
-bsymbolic vs -Bsymbolic

Hi,

Is there any difference between -bsymbolic and -Bsymbolic linker option in AIX?

Thanks
# 2  
Old 03-30-2011
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
Login or Register to Ask a Question

Previous Thread | Next Thread
Login or Register to Ask a Question