This heads up message is of interest if you compile
C++ code using gcc/g++ 3.4.3, on a system running
any version of Solaris in the range snv_98 - snv_103,
inclusive. This includes OpenSolaris 2008.11.
Otherwise, you can stop reading now.
If you build C++ code using gcc, on a build system that
includes the snv_98 fix for
6735939 ld(1) discarded symbol relocations errors (Studio and GNU).
6354160 Solaris linker includes more than one copy of code in
binary when linking gnu object code
and which does not have the subsequent snv_104 fix for
6763342 sloppy relocations need to get sloppier
then you may see linker warnings of the form
ld: warning: relocation warning: R_AMD64_PC32: file pics/HBAList.o:
section .rela.eh_frame:
symbol .gnu.linkonce.t._ZNSt6vector...EERKS1_ (section):
relocation against discarded COMDAT section
.gnu.linkonce.t._ZNSt6vector...EERKS1_:
symbol not found, relocation ignored
The code that results from such a link is usable, but
the many warnings will slow down compilation, and will
obscure any real problems that may also be reported.
Upgrading your build system to snv_104 or newer will
fix the problem. The workaround is to use Sun Studio
cc instead of gcc. Alternatively, newer (4.x) versions
of gcc do not trigger this issue.