Menu

Building ovaldi on Solaris 11.1

Help
Ben
2015-05-26
2015-05-28
  • Ben

    Ben - 2015-05-26

    I've been trying to build ovaldi on Solaris 11.1 with gcc/g++ 4.5.2 for a couple of days now. I started by following the Solaris build notes found here: https://sourceforge.net/p/ovaldi/wiki/Build%20notes/

    I have xerces and xalan installed. I was able to get past a number of build errors by adding a few include lines to various files, but I am now stuck on a build error that I can't for the life of me figure out.

    root@audit-solaris11-1:~/ovaldi/project/solaris# gmake
    g++  -Wall -DBSD_COMP -DSUNOS -I../../vendor/boost_1_53_0 -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 -I/usr/include/pcre -I/usr/include/sys -O  -c -o ../../src/Definition.o ../../src/Definition.cpp
    In file included from /usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/../../../../include/c++/4.5.2/bits/localefwd.h:44:0,
                     from /usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/../../../../include/c++/4.5.2/string:45,
                     from ../../src/XmlCommon.h:35,
                     from ../../src/Definition.cpp:34:
    /usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/../../../../include/c++/4.5.2/cctype:66:11: error: ‘::isalnum’ has not been declared
    /usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/../../../../include/c++/4.5.2/cctype:67:11: error: ‘::isalpha’ has not been declared
    /usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/../../../../include/c++/4.5.2/cctype:68:11: error: ‘::iscntrl’ has not been declared
    /usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/../../../../include/c++/4.5.2/cctype:69:11: error: ‘::isdigit’ has not been declared
    /usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/../../../../include/c++/4.5.2/cctype:70:11: error: ‘::isgraph’ has not been declared
    /usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/../../../../include/c++/4.5.2/cctype:71:11: error: ‘::islower’ has not been declared
    /usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/../../../../include/c++/4.5.2/cctype:72:11: error: ‘::isprint’ has not been declared
    /usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/../../../../include/c++/4.5.2/cctype:73:11: error: ‘::ispunct’ has not been declared
    /usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/../../../../include/c++/4.5.2/cctype:74:11: error: ‘::isspace’ has not been declared
    /usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/../../../../include/c++/4.5.2/cctype:75:11: error: ‘::isupper’ has not been declared
    /usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/../../../../include/c++/4.5.2/cctype:76:11: error: ‘::isxdigit’ has not been declared
    /usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/../../../../include/c++/4.5.2/cctype:77:11: error: ‘::tolower’ has not been declared
    /usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/../../../../include/c++/4.5.2/cctype:78:11: error: ‘::toupper’ has not been declared
    In file included from /usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/../../../../include/c++/4.5.2/bits/locale_facets.h:43:0,
                     from /usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/../../../../include/c++/4.5.2/bits/basic_ios.h:39,
                     from /usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/../../../../include/c++/4.5.2/ios:45,
                     from /usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/../../../../include/c++/4.5.2/istream:40,
                     from /usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/../../../../include/c++/4.5.2/sstream:39,
                     from ../../src/Common.h:49,
                     from ../../src/Definition.cpp:35:
    /usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/../../../../include/c++/4.5.2/i386-pc-solaris2.11/bits/ctype_base.h:44:35: error: ‘_ISUPPER’ was not declared in this scope
    /usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/../../../../include/c++/4.5.2/i386-pc-solaris2.11/bits/ctype_base.h:45:32: error: ‘_ISLOWER’ was not declared in this scope
    /usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/../../../../include/c++/4.5.2/i386-pc-solaris2.11/bits/ctype_base.h:46:32: error: ‘_ISALPHA’ was not declared in this scope
    /usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/../../../../include/c++/4.5.2/i386-pc-solaris2.11/bits/ctype_base.h:47:32: error: ‘_ISDIGIT’ was not declared in this scope
    /usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/../../../../include/c++/4.5.2/i386-pc-solaris2.11/bits/ctype_base.h:48:33: error: ‘_ISXDIGIT’ was not declared in this scope
    /usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/../../../../include/c++/4.5.2/i386-pc-solaris2.11/bits/ctype_base.h:49:32: error: ‘_ISSPACE’ was not declared in this scope
    /usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/../../../../include/c++/4.5.2/i386-pc-solaris2.11/bits/ctype_base.h:50:32: error: ‘_ISPRINT’ was not declared in this scope
    /usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/../../../../include/c++/4.5.2/i386-pc-solaris2.11/bits/ctype_base.h:51:32: error: ‘_ISALPHA’ was not declared in this scope
    /usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/../../../../include/c++/4.5.2/i386-pc-solaris2.11/bits/ctype_base.h:51:43: error: ‘_ISDIGIT’ was not declared in this scope
    /usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/../../../../include/c++/4.5.2/i386-pc-solaris2.11/bits/ctype_base.h:51:54: error: ‘_ISPUNCT’ was not declared in this scope
    /usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/../../../../include/c++/4.5.2/i386-pc-solaris2.11/bits/ctype_base.h:52:32: error: ‘_ISCNTRL’ was not declared in this scope
    /usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/../../../../include/c++/4.5.2/i386-pc-solaris2.11/bits/ctype_base.h:53:32: error: ‘_ISPUNCT’ was not declared in this scope
    /usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/../../../../include/c++/4.5.2/i386-pc-solaris2.11/bits/ctype_base.h:54:32: error: ‘_ISALPHA’ was not declared in this scope
    /usr/gcc/4.5/lib/gcc/i386-pc-solaris2.11/4.5.2/../../../../include/c++/4.5.2/i386-pc-solaris2.11/bits/ctype_base.h:54:43: error: ‘_ISDIGIT’ was not declared in this scope
    gmake: *** [../../src/Definition.o] Error 1
    

    From my research, this error could be caused by an include within a namespace, but the log.h include fix I made was not done in any namespace, and the other include I had to add (<algorithm>) was also done outside of namespaces. I even tried removing the <algorithm> include and did a gmake clean && gmake and am still getting the same error.

    Does anyone have suggestions for getting past this issue?

     
  • Michael Chisholm

    Looks like the issues are in <string> and <sstream>. Can your toolchain compile/link a simple app that just uses those headers? E.g. create an app does nothing and just includes <string> and see if the error occurs. It might help narrow in on the culprit.

     
  • Ben

    Ben - 2015-05-28

    I created a very basic C++ program that uses some basic functionality from <string> and <sstream>. It compiles and runs fine an my system.

    #include <string>
    #include <iostream>
    #include <sstream>
    
    int main()
    {
      std::string s ("Hello all!");
    
      std::cout << "Hello World!" << std::endl;
      std::cout << s << std::endl;
    
      std::stringstream ss;
    
      ss << 100 << ' ' << 200;
    
      int foo,bar;
      ss >> foo >> bar;
    
      std::cout << "foo: " << foo << '\n';
      std::cout << "bar: " << bar << '\n';
      return 0;
    }
    

    Output:

    root@audit-solaris11-1:~/ovaldi/project/solaris# g++ main.cpp && ./a.out
    Hello World!
    Hello all!
    foo: 100
    bar: 200
    
     

    Last edit: Ben 2015-05-28
  • Michael Chisholm

    Ok, that's helpful. So the toolchain is probably okay. Perhaps there's a macro misconfiguration. What if you remove the -DBSD_COMP from the commandline? Or -DSUNOS? Are those symbols used in cctype, ctype.h, or ctype_base.h? Perhaps they're interfering with something in the Definition.cpp translation unit.

    I don't have a solaris 11 machine to test with anymore, nor can I "officially" spend time on this anymore as part of my job. So I am having to come at this from a "what would I do if I were you" perspective. Wish I could be more help.

     

Log in to post a comment.