RDKLIBS changed:

  - ... -lRDGeometryLib -lRDGeneral -lDepictor
  + ... -lDepictor -lRDGeometryLib -lRDGeneral

And lo, there was much rejoicing and slapping of foreheads - that did it. Thanks!

Cheers
-- Jan

On 2014-02-23 12:56, Greg Landrum wrote:
Jan,

It is probably the order of the libraries (static linking can introduce that).
Try moving the depiction lib to the beginning of the libs list

-greg

On Sunday, February 23, 2014, Jan Holst Jensen <[email protected] <mailto:[email protected]>> wrote:

    Hi Greg,

    I now have a working version of mol_to_ctab() - except when I add
    in depiction generation. There is a linking issue I don't understand.

    In adapter.cpp I have added this function that implements the C++
    part of mol_to_ctab():

        extern "C" char *
        makeCtabText(CROMol data, int *len, bool
        createDepictionIfMissing) {
          ROMol   *mol = (ROMol*)data;

          try {
            if (createDepictionIfMissing && mol->getNumConformers() ==
        0) {
              RDDepict::compute2DCoords(*mol);
            }
            StringData = MolToMolBlock(*mol);
          } catch (...) {
            ereport(WARNING,
                    (errcode(ERRCODE_WARNING),
                     errmsg("makeCtabText: problems converting
        molecule to CTAB")));
            StringData="";
          }

          *len = StringData.size();
          return (char*)StringData.c_str();
        }


    But, postgres then won't start (I preload the 'rdkit' library) and
    in the postgres startup log I see a complaint about unresolved
    symbols. Those are caused by the RDDepict::compute2DCoords() call.
    If I compile without the RDDepict::... line, all is well, and the
    cartridge loads.

    I check the built rdkit.so (with the depiction call):

        [jhje@bcfregbuild rdkit]$ nm -D rdkit.so | grep " U "|grep RD
                         U
        _ZN6RDGeom11Transform2D12SetTransformERKNS_7Point2DES3_S3_S3_
                         U
        _ZN6RDGeom11Transform2D12SetTransformERKNS_7Point2DEd
                         U
        _ZNK6RDGeom11Transform2D14TransformPointERNS_7Point2DE
        [jhje@bcfregbuild rdkit]$


    So I do a naive search for those unresolved symbols in rdkit's lib
    directory to see what libs are needed:

        [jhje@bcfregbuild lib]$ grep
        _ZN6RDGeom11Transform2D12SetTransformERKNS_7Point2DES3_S3_S3_ *.a
        Binary file libDepictor_static.a matches
        Binary file libRDGeometryLib_static.a matches
        [jhje@bcfregbuild lib]$ grep
        _ZN6RDGeom11Transform2D12SetTransformERKNS_7Point2DEd *.a
        Binary file libDepictor_static.a matches
        Binary file libRDGeometryLib_static.a matches
        [jhje@bcfregbuild lib]$ grep
        _ZNK6RDGeom11Transform2D14TransformPointERNS_7Point2DE *.a
        Binary file libDepictor_static.a matches
        Binary file libRDGeometryLib_static.a matches
        [jhje@bcfregbuild lib]$


    I have added Depictor to the RDKLIBS in the Makefile -
    RDGeometryLib was already there:

        RDKLIBS       = ${INCHILIBS} [...] -lDataStructs
    -lRDGeometryLib -lRDGeneral *-lDepictor*

    So I would have thought that all was well. But I still have these
    three unlinked symbols after adding the Depictor lib and
    rebuilding. Some secondary dependencies ... ? I hope that I can
    slap my forehead and say "DUH" when I am told the reason why...

    Cheers
    -- Jan


------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk
_______________________________________________
Rdkit-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

Reply via email to