Problem compiling xmltooling 1.5.0 in Solaris

Landon Thomas lthomas at cs.umn.edu
Fri Aug 17 17:25:19 EDT 2012


I'm getting this compile error with xmltooling-1.5.0 in Solaris 5.10:

---
source='io/AbstractXMLObjectUnmarshaller.cpp' 
object='libxmltooling_lite_la-AbstractXMLObjectUnmarshaller.lo' 
libtool=yes \
         DEPDIR=.deps depmode=none /bin/bash ../build-aux/depcomp \
         /bin/bash ../libtool --silent  --tag=CXX   --mode=compile CC 
-DHAVE_CONFIG_H -I. -I..  -DXMLTOOLING_LITE -I/opt/local/include 
-I/export/apache/shibboleth/xml-security-c/1.7.0/include 
-I/export/apache/shibboleth/xerces-c/3.1.1/include 
-I/export/apache/shibboleth/log4shib/1.0.5/include -mt -D_REENTRANT -g 
-D_POSIX_PTHREAD_SEMANTICS -I/opt/local/include/boost-1_37 
-I/export/apache/openssl/0.9.8r-for-shibboleth/include  -mt -D_REENTRANT 
  -g -D_POSIX_PTHREAD_SEMANTICS -Qoption ccfe 
-stabs=no%dfltlit+no%dflthlp -c -o 
libxmltooling_lite_la-AbstractXMLObjectUnmarshaller.lo `test -f 
'io/AbstractXMLObjectUnmarshaller.cpp' || echo 
'./'`io/AbstractXMLObjectUnmarshaller.cpp
source='io/HTTPRequest.cpp' 
object='libxmltooling_lite_la-HTTPRequest.lo' libtool=yes \
         DEPDIR=.deps depmode=none /bin/bash ../build-aux/depcomp \
         /bin/bash ../libtool --silent  --tag=CXX   --mode=compile CC 
-DHAVE_CONFIG_H -I. -I..  -DXMLTOOLING_LITE -I/opt/local/include 
-I/export/apache/shibboleth/xml-security-c/1.7.0/include 
-I/export/apache/shibboleth/xerces-c/3.1.1/include 
-I/export/apache/shibboleth/log4shib/1.0.5/include -mt -D_REENTRANT -g 
-D_POSIX_PTHREAD_SEMANTICS -I/opt/local/include/boost-1_37 
-I/export/apache/openssl/0.9.8r-for-shibboleth/include  -mt -D_REENTRANT 
  -g -D_POSIX_PTHREAD_SEMANTICS -Qoption ccfe 
-stabs=no%dfltlit+no%dflthlp -c -o libxmltooling_lite_la-HTTPRequest.lo 
`test -f 'io/HTTPRequest.cpp' || echo './'`io/HTTPRequest.cpp
"io/HTTPRequest.cpp", line 47: Error: Could not find 
std::__reverse_bi_iterator<__rwstd::__rb_tree<float, std::pair<const 
float, std::vector<std::basic_string<unsigned short> >>, 
__rwstd::__select1st<std::pair<const float, 
std::vector<std::basic_string<unsigned short> >>, float>, 
std::less<float>, std::allocator<std::pair<const float, 
std::vector<std::basic_string<unsigned short> >>>>::const_iterator, 
std::bidirectional_iterator_tag, std::pair<const float, 
std::vector<std::basic_string<unsigned short> >>, const std::pair<const 
float, std::vector<std::basic_string<unsigned short> >>&, const 
std::pair<const float, std::vector<std::basic_string<unsigned short> 
 >>*, 
int>::__reverse_bi_iterator(std::__reverse_bi_iterator<__rwstd::__rb_tree<float, 
std::pair<const float, std::vector<std::basic_string<unsigned short> >>, 
__rwstd::__select1st<std::pair<const float, 
std::vector<std::basic_string<unsigned short> >>, float>, 
std::less<float>, std::allocator<std::pair<const float, 
std::vector<std::basic_string<unsigned short> >>>>::iterator, 
std::bidirectional_iterator_tag, std::pair<const float, 
std::vector<std::basic_string<unsigned short> >>, std::pair<const float, 
std::vector<std::basic_string<unsigned short> >>&, std::pair<const 
float, std::vector<std::basic_string<unsigned short> >>*, int>) to 
initialize m_langRangeIter.
"io/HTTPRequest.cpp", line 159: Warning (Anachronism): Assigning 
std::__reverse_bi_iterator<__rwstd::__rb_tree<float, std::pair<const 
float, std::vector<std::basic_string<unsigned short> >>, 
__rwstd::__select1st<std::pair<const float, 
std::vector<std::basic_string<unsigned short> >>, float>, 
std::less<float>, std::allocator<std::pair<const float, 
std::vector<std::basic_string<unsigned short> >>>>::iterator, 
std::bidirectional_iterator_tag, std::pair<const float, 
std::vector<std::basic_string<unsigned short> >>, std::pair<const float, 
std::vector<std::basic_string<unsigned short> >>&, std::pair<const 
float, std::vector<std::basic_string<unsigned short> >>*, int> to 
std::__reverse_bi_iterator<__rwstd::__rb_tree<float, std::pair<const 
float, std::vector<std::basic_string<unsigned short> >>, 
__rwstd::__select1st<std::pair<const float, 
std::vector<std::basic_string<unsigned short> >>, float>, 
std::less<float>, std::allocator<std::pair<const float, 
std::vector<std::basic_string<unsigned short> >>>>::const_iterator, 
std::bidirectional_iterator_tag, std::pair<const float, 
std::vector<std::basic_string<unsigned short> >>, const std::pair<const 
float, std::vector<std::basic_string<unsigned short> >>&, const 
std::pair<const float, std::vector<std::basic_string<unsigned short> 
 >>*, int>.
"io/HTTPRequest.cpp", line 159: Error: Cannot cast from 
std::__reverse_bi_iterator<__rwstd::__rb_tree<float, std::pair<const 
float, std::vector<std::basic_string<unsigned short> >>, 
__rwstd::__select1st<std::pair<const float, 
std::vector<std::basic_string<unsigned short> >>, float>, 
std::less<float>, std::allocator<std::pair<const float, 
std::vector<std::basic_string<unsigned short> >>>>::iterator, 
std::bidirectional_iterator_tag, std::pair<const float, 
std::vector<std::basic_string<unsigned short> >>, std::pair<const float, 
std::vector<std::basic_string<unsigned short> >>&, std::pair<const 
float, std::vector<std::basic_string<unsigned short> >>*, int> to 
std::__reverse_bi_iterator<__rwstd::__rb_tree<float, std::pair<const 
float, std::vector<std::basic_string<unsigned short> >>, 
__rwstd::__select1st<std::pair<const float, 
std::vector<std::basic_string<unsigned short> >>, float>, 
std::less<float>, std::allocator<std::pair<const float, 
std::vector<std::basic_string<unsigned short> >>>>::const_iterator, 
std::bidirectional_iterator_tag, std::pair<const float, 
std::vector<std::basic_string<unsigned short> >>, const std::pair<const 
float, std::vector<std::basic_string<unsigned short> >>&, const 
std::pair<const float, std::vector<std::basic_string<unsigned short> 
 >>*, int>.
2 Error(s) and 1 Warning(s) detected.
make[3]: *** [libxmltooling_lite_la-HTTPRequest.lo] Error 1
make[3]: Leaving directory 
`/export/apache/src/shibboleth/xmltooling-1.5.0/xmltooling'
make[2]: *** [all] Error 2
make[2]: Leaving directory 
`/export/apache/src/shibboleth/xmltooling-1.5.0/xmltooling'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/export/apache/src/shibboleth/xmltooling-1.5.0'
make: *** [all] Error 2
---

When I use the same compiler:

lthomas at research (/export/apache/src/shibboleth/xmltooling-1.5.0) % cc -V
cc: Sun C 5.9 SunOS_sparc Patch 124867-01 2007/07/12
usage: cc [ options] files.  Use 'cc -flags' for details

with the same environment in xmltooling 1.4.2, it compiles fine.  I 
literally just cd from the xmltooling-1.4.2 directory to 
xmltooling-1.5.0 and run the same configure line:

'./configure' '--prefix=/export/apache/shibboleth/xmltooling/1.5.0' 
'--with-log4shib=/export/apache/shibboleth/log4shib/1.0.5' 
'--with-xerces=/export/apache/shibboleth/xerces-c/3.1.1' 
'--with-xmlsec=/export/apache/shibboleth/xml-security-c/1.7.0' 
'--with-openssl=/export/apache/openssl/0.9.8r-for-shibboleth' -C

followed by make and 1.4.2 works and 1.5.0 gets the above error.  Every 
dependency in that configure line was also compiled with that same Sun 
'cc' compiler.

xmltooling-1.5.0 does compile if I compile all the dependencies and 
xmltooling with GCC 4.5.2, but that creates version conflicts when I get 
to compiling OpenSAML and GCC is less than optimal for my Apache 
environment.  I'm currently using xmltooling-1.4.2/shibboleth-2.4.3 
(compiled via Sun's cc) in production.

There seems to be some change in code that breaks my compiler from 1.4.2 
to 1.5.0.  Any ideas?  Let me know if you want me to file a bug report.

lthomas at research (/export/apache/src/shibboleth/xmltooling-1.5.0) % uname -a
SunOS research 5.10 Generic_142900-03 sun4v sparc 
SUNW,SPARC-Enterprise-T5120 Solaris

Thanks,
Landon


More information about the users mailing list