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?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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.
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?
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.
I created a very basic C++ program that uses some basic functionality from <string> and <sstream>. It compiles and runs fine an my system.
Output:
Last edit: Ben 2015-05-28
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.