[csw-maintainers] Need help on C++ linker issue

Dagobert Michelsen dam at opencsw.org
Tue Dec 13 11:13:27 CET 2011


Hi folks,

in my effort to build imagemagick 64 bit I encountered a problem with the latest
libfpx, where I get unresolved symbols. When look at the methods I see a function
with a different mangled name, which has however the same unmangled signature.
It would be cool if someone with more expertise on C++ could lend me a hand in
this, everything is checked in GAR in pkg/libfpx/trunk:

unstable9s% ldd -r work/solaris9-sparc/pkgroot/opt/csw/lib/libfpx.so
        /usr/lib/secure/s9_preload.so.1
        libCrun.so.1 =>  /usr/lib/libCrun.so.1
        libm.so.1 =>     /usr/lib/libm.so.1
        libc.so.1 =>     /usr/lib/libc.so.1
        libdl.so.1 =>    /usr/lib/libdl.so.1
        /usr/platform/SUNW,SPARC-Enterprise-T5220/lib/libc_psr.so.1
        symbol not found: __1cPCExposedDocFileNRenameElement6Mpkcp1_i_          (work/solaris9-sparc/pkgroot/opt/csw/lib/libfpx.so)
        symbol not found: __1cPCExposedDocFileNRenameElement6Mpkcp1_i_          (work/solaris9-sparc/pkgroot/opt/csw/lib/libfpx.so)
        symbol not found: __1cPOLEHeaderStreamESeek6MklkL_C_            (work/solaris9-sparc/pkgroot/opt/csw/lib/libfpx.so)
        symbol not found: __1cDstdNbasic_ostream4Ccn0ALchar_traits4Cc___Fwrite6Mpkcl_r1_                (work/solaris9-sparc/pkgroot/opt/csw/lib/libfpx.so)
        symbol not found: __1cDstdNbasic_ostream4Ccn0ALchar_traits4Cc___Dput6Mc_r1_             (work/solaris9-sparc/pkgroot/opt/csw/lib/libfpx.so)

unstable9s% ldd -r work/solaris9-sparc/pkgroot/opt/csw/lib/libfpx.so | c++filt 
        /usr/lib/secure/s9_preload.so.1
        libCrun.so.1 =>  /usr/lib/libCrun.so.1
        libm.so.1 =>     /usr/lib/libm.so.1
        libc.so.1 =>     /usr/lib/libc.so.1
        libdl.so.1 =>    /usr/lib/libdl.so.1
        /usr/platform/SUNW,SPARC-Enterprise-T5220/lib/libc_psr.so.1
        symbol not found: int CExposedDocFile::RenameElement(const char*,const char*)           (work/solaris9-sparc/pkgroot/opt/csw/lib/libfpx.so)
        symbol not found: int CExposedDocFile::RenameElement(const char*,const char*)           (work/solaris9-sparc/pkgroot/opt/csw/lib/libfpx.so)
        symbol not found: unsigned char OLEHeaderStream::Seek(const long,const unsigned long)           (work/solaris9-sparc/pkgroot/opt/csw/lib/libfpx.so)
        symbol not found: std::ostream &std::ostream::write(const char*,long)           (work/solaris9-sparc/pkgroot/opt/csw/lib/libfpx.so)
        symbol not found: std::ostream &std::ostream::put(char)         (work/solaris9-sparc/pkgroot/opt/csw/lib/libfpx.so)

unstable9s% nm -A work/solaris9-sparc/pkgroot/opt/csw/lib/libfpx.so | grep RenameElement           
work/solaris9-sparc/pkgroot/opt/csw/lib/libfpx.so: [1234]       |    460404|     104|FUNC |GLOB |0    |8      |__1cKOLEStorageNRenameElement6Mpkc2_C_
work/solaris9-sparc/pkgroot/opt/csw/lib/libfpx.so: [2120]       |    601812|     176|FUNC |GLOB |0    |8      |__1cPCExposedDocFileNRenameElement6MpkHp1_i_
work/solaris9-sparc/pkgroot/opt/csw/lib/libfpx.so: [1317]       |    581748|      96|FUNC |GLOB |0    |8      |__1cPCExposedDocFileNRenameElement6Mpkc2_i_
work/solaris9-sparc/pkgroot/opt/csw/lib/libfpx.so: [2392]       |         0|       0|NOTY |GLOB |0    |UNDEF  |__1cPCExposedDocFileNRenameElement6Mpkcp1_i_

unstable9s% nm -A work/solaris9-sparc/pkgroot/opt/csw/lib/libfpx.so | grep RenameElement | c++filt  
work/solaris9-sparc/pkgroot/opt/csw/lib/libfpx.so: [1234]       |    460404|     104|FUNC |GLOB |0    |8      |unsigned char OLEStorage::RenameElement(const char*,const char*)
work/solaris9-sparc/pkgroot/opt/csw/lib/libfpx.so: [2120]       |    601812|     176|FUNC |GLOB |0    |8      |int CExposedDocFile::RenameElement(const unsigned short*,const unsigned short*)
work/solaris9-sparc/pkgroot/opt/csw/lib/libfpx.so: [1317]       |    581748|      96|FUNC |GLOB |0    |8      |int CExposedDocFile::RenameElement(const char*,const char*)
work/solaris9-sparc/pkgroot/opt/csw/lib/libfpx.so: [2392]       |         0|       0|NOTY |GLOB |0    |UNDEF  |int CExposedDocFile::RenameElement(const char*,const char*)


Best regards

  -- Dago

-- 
"You don't become great by trying to be great, you become great by wanting to do something,
and then doing it so hard that you become great in the process." - xkcd #896



More information about the maintainers mailing list