SYMPTOMS
Relink returns many warnings
Running make for target ioracle
OPatch found the word "error" in the stderr of the make command.
Please look at this stderr. You can re-run this make command.
Stderr output:
ld: 0711-415 WARNING: Symbol ldxdts is already exported.
ld: 0711-415 WARNING: Symbol ldxsto is already exported.
ld: 0711-415 WARNING: Symbol lnxadd is already exported.
ld: 0711-415 WARNING: Symbol lnxcopy is already exported.
...
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
ld: 0711-319 WARNING: Exported symbol not defined: count__21TxsOqSourceDefinitionFP31TxsOqSourceDefinitionController
ld: 0711-319 WARNING: Exported symbol not defined: cout__3std
...
ld: 0711-773 WARNING: Object /u00/app/oracle/product/11.2.0.1/lib//libordsdo11.a[mdrcnc.o], imported symbol mdrcnccmt_
Symbol was expected to be local. Extra instructions
are being generated to reference the symbol.
ld: 0711-783 WARNING: TOC overflow. TOC size: 219456 Maximum size: 65536
Extra instructions are being generated for each reference to a TOC
symbol if the symbol is in the TOC overflow area.
CHANGES
Patch was installed, "relink all" or "relink oracle" was issued
CAUSE
There are 2 different causes.
ISSUE 1:
========
ld: 0711-783 WARNING: TOC overflow. TOC size
Cause: Bug 2737755
ISSUE 2:
========
Symbol xxxxxx is already exported.
...
ld: 0711-319 WARNING: Exported symbol not defined:
Cause: Bug 9828407
SOLUTION
Issue 1: Ignore the warnings
Note 245372.1 TOC overflow Warning Can Safely Be Ignored
Issue 2: Ignore the warnings
BUG 9828407 states:
Most versions of ld will only forward parse the link line. The warnings are due to the method Oracle uses when parsing the link line to ensure the forward parsing resolves the symbols we require. The side-effect of this on some platforms, such as AIX, is that we then end up reporting a lot of duplicate symbols due to the multiple inclusions of the libraries on the link line ... These are just 'noise' from the linker being 'pedantic' on AIX ... but it does no harm and can be safely ignored.