Menu

Req: Ovaldi Interpreter 5.10.1.7 compilation assistance -- Solaris 10 x86

Help
Jim
2014-08-05
2014-08-12
  • Jim

    Jim - 2014-08-05

    Hello,

    I am attempting to compile the Ovaldi Interpreter on 32-bit Solaris 10 x86 (5.10). I have successfully built the 5 dependencies using GCC 3.4.3 as provided by Solaris Studio 12.3:

    • pcre 8.35
    • xerces 3.1.1
    • xalan 1.11
    • libgpg-error 1.11
    • libgcrypt 1.6.1

    I've had to manually copy over some of the hpp files from xalan to my include dir as the Ovaldi build was complaining about missing files. I am not sure why said files were missing. Once I moved past these errors the following error was produced:

    g++ -Wall -DBSD_COMP -DSUNOS -I/usr/local/include -I/usr/include -I../../src/solaris -I../../src -I../../src/probes/unix -I../../src/probes/solaris -I../../src/probes/independent -I../../src/unix -O -c -o ../../src/solaris/ProbeFactory.o ../../src/solaris/ProbeFactory.cpp
    ../../src/solaris/ProbeFactory.cpp: In static member function static AbsProbe* ProbeFactory::GetProbe(std::string)': ../../src/solaris/ProbeFactory.cpp:136: error:Log' has not been declared
    ../../src/solaris/ProbeFactory.cpp:136: error: `Info' undeclared (first use this function)
    ../../src/solaris/ProbeFactory.cpp:136: error: (Each undeclared identifier is reported only once for each function it appears in.)
    gmake: *** [../../src/solaris/ProbeFactory.o] Error 1

    I am not sure how to troubleshoot this. Could anyone offer a suggestion in how to further troubleshoot? I appreciate any advise and I thank you for your time and efforts.

    Jim

     

    Last edit: Jim 2014-08-05
  • Michael Chisholm

    Looks like this was fixed in [r1739]. It was just missing an #include, so it was a simple fix.

     

    Related

    Commit: [r1739]

  • Jim

    Jim - 2014-08-07

    Michael,

    Thank you for the reply! Adding the extra include line did correct the error. I was able to build the ovaldi binary. However I did need to remove the "-llber" (ASN Basic Encoding Rule?) library as the linker couldn't resolve it.

    Apparently this is a known issue with Solaris ... at least according to Google. I believe the reasoning is the Solaris LDAP library includes the BER library; they're not separate files.

    I haven't yet had a chance to test the Ovaldi Interpreter binary, past ensuring it prints the help menu. But I was curious by removing the BER library from the binary, what functionality am I missing (if LDAP doesn't include it)?

    Thank you, Jim

     
  • Michael Chisholm

    On our system:

    $ ldd /usr/local/lib/libldap-2.4.so.2
    liblber-2.4.so.2 => /usr/local/lib/liblber-2.4.so.2
    ...

    Looks like LDAPProbe.cpp calls ber_free(), which is a member of liblber, which would be why that was linked in. If your ldap library contains ber_free(), ovaldi should work the same as if the function were defined elsewhere. The important thing is that it was found. (And works the same way, but it sounds like it's only a difference in location.)

     

Log in to post a comment.

MongoDB Logo MongoDB