[reSIProcate] Solaris status (libCstd or stlport?)

Daniel Pocock daniel at pocock.com.au
Mon Apr 23 16:49:53 CDT 2012



On 23/04/12 22:15, Adam Roach wrote:
> On 4/20/12 3:50 PM, Daniel Pocock wrote:
>>
>>
>> I notice that reSIProcate has previously been compiled on Solaris using
>> -library=stlport, and I believe this is still necessary or the code
>> doesn't compile.  Without -library=stlport, it stops like this:
>>
>> libtool: compile:  /opt/SUNWspro/bin/CC -DHAVE_CONFIG_H -I. -I..
>> -I/opt/csw/bdb48/include -I/opt/csw/include -xO3 -m32 -xarch=sparc
>> -DRESIP_OSTYPE_SUNOS -DRESIP_ARCH_SPARC -DRESIP_LARCH_SPARC -D_REENTRANT
>> -DRESIP_TOOLCHAIN_SUNPRO -c DnsUtil.cxx  -KPIC -DPIC -o .libs/DnsUtil.o
>> "DnsUtil.cxx", line 550: Error: Formal argument x of type const
>> std::pair<resip::Data, resip::Data>&  in call to
>> std::list<std::pair<resip::Data, resip::Data>  >::push_back(const
>> std::pair<resip::Data, resip::Data>&) is being passed std::pair<char*,
>> resip::Data>.
>> 1 Error(s) detected.
>>
>>
>> However, I noticed that dependenices (e.g.
>> /opt/csw/bdb48/lib/libdb_cxx-4.8.so) are linked against libCstd
>>
>> If I add -library=stlport, the code builds, but the repro binary fails
>> with a Segmentation fault, before it even enters the main function.  The
>> stack trace shows a combination of libCstd and stlport classes.
>>
>> Can anyone comment on how to deal with this situation?  Should libCstd
>> be supported?
>>
> 
> Okay, after studying the error message, this looks like a bug in libCstd
> under Solaris. For some reason, it's failing to perform an implicit
> conversion from "std::pair<char*,resip::Data>" to "const
> std::pair<resip::Data,resip::Data>&".

I did manage to get that one sorted out the other day,
http://list.resiprocate.org/archive/resiprocate-commit/msg06759.html

and a few others too

The one where I got stuck was in the email I sent earlier today:

http://list.resiprocate.org/archive/resiprocate-devel/msg07989.html

ccfe: Sun C++ 5.10 SunOS_sparc Patch 128228-17 2012/01/17
"/opt/studio/sunstudio12.1/prod/include/CC/Cstd/./memory", line 483:
Error: Using static_cast to convert from std::pair<resip::Data,
resip::HeaderFieldValueList*>* to std::list<std::pair<resip::Data,
resip::HeaderFieldValueList*>,
resip::StlPoolAllocator<std::pair<resip::Data,
resip::HeaderFieldValueList*>, resip::PoolBase>>::__list_node_buffer*
not allowed.
"/opt/studio/sunstudio12.1/prod/include/CC/Cstd/./list", line 135:
Where: While instantiating
"std::allocator_interface<resip::StlPoolAllocator<std::pair<resip::Data,
resip::HeaderFieldValueList*>, resip::PoolBase>,
std::list<std::pair<resip::Data, resip::HeaderFieldValueList*>,
resip::StlPoolAllocator<std::pair<resip::Data,
resip::HeaderFieldValueList*>,
resip::PoolBase>>::__list_node_buffer>::allocate(unsigned,
std::list<std::pair<resip::Data, resip::HeaderFieldValueList*>,
resip::StlPoolAllocator<std::pair<resip::Data,
resip::HeaderFieldValueList*>, resip::PoolBase>>::__list_node_buffer*)".
"/opt/studio/sunstudio12.1/prod/include/CC/Cstd/./list", line 135:
Where: Instantiated from non-template code.
1 Error(s) detected.



I've done two runs of `make -i', once to build everything that does
build, and a second time just to get the error output as it tries to
build everything that failed.  Here is a summary:


SipMessage.cxx (errors from above):
"/opt/studio/sunstudio12.1/prod/include/CC/Cstd/./memory", line 483:
Error: Using static_cast to convert from std::pair<resip::Data,
resip::HeaderFieldValueList*>* to std::list<std::pair<resip::Data,
resip::HeaderFieldValueList*>,
resip::StlPoolAllocator<std::pair<resip::Data,
resip::HeaderFieldValueList*>, resip::PoolBase>>::__list_node_buffer*
not allowed.



"TransportSelector.cxx", line 215: Error: Could not find a match for
std::multimap<resip::Tuple, resip::Transport*,
resip::Tuple::AnyPortAnyInterfaceCompare, std::allocator<std::pair<const
resip::Tuple, resip::Transport*>>>::insert(std::pair<resip::Tuple,
resip::Transport*>) needed in
resip::TransportSelector::addTransportInternal(std::auto_ptr<resip::Transport>).
1 Error(s) detected.




"InMemoryRegistrationDatabase.cxx", line 243: Error: Cannot cast from
RemoveIfExpired to bool(*)(const resip::ContactInstanceRecord&).




"InMemorySyncRegDb.cxx", line 58: Error: Cannot cast from
RemoveIfRequired to bool(*)(const resip::ContactInstanceRecord&).
"InMemorySyncRegDb.cxx", line 311: Error: Cannot cast from
RemoveIfRequired to bool(*)(const resip::ContactInstanceRecord&).
"InMemorySyncRegDb.cxx", line 341: Error: Cannot cast from
RemoveIfRequired to bool(*)(const resip::ContactInstanceRecord&).

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: resip.make.out
URL: <http://list.resiprocate.org/pipermail/resiprocate-devel/attachments/20120423/b42490bb/attachment.ksh>


More information about the resiprocate-devel mailing list