[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