[csw-maintainers] another attempt at reSIProcate / OpenSSL issue

Daniel Pocock daniel at opencsw.org
Sun Sep 23 15:19:08 CEST 2012


On 23/09/12 12:07, Daniel Pocock wrote:
> On 22/09/12 19:34, Yann Rouillard wrote:
>> Hi Daniel,
>>
>> What do you want to know about the status of Openssl ?
> 
> 
> I'm not certain it is any OpenSSL issue, but three things come to mind:
> - the code compiles on Linux and Windows
> - the same error was found in other projects (as per the Google results)
> - this code previously compiled on the OpenCSW build farm (about 3
> months ago)
> 
> although I agree that none of these things proves the code is fault-free
> 
>> I am not sure your problem is directly related to openssl. It seems to look
>> like a type declaration mismatch.
>> You could try to relaunch the command line used to compile ssl/Security.cxx
>> with "-o .libs/Security.o" replaced with -E.
> 
> This is the original code (line 2315):
> 
>    sk_GENERAL_NAME_pop_free(gens, GENERAL_NAME_free);
> 
> This is the section of pre-processor output, I notice it puts the line
> number in the middle of the statement:
> 
> 
> sk_pop_free ( ( ( _STACK * ) ( 1 ? ( gens ) : ( struct
> stack_st_GENERAL_NAME * ) 0 ) ) , ( ( void ( * ) ( void * ) ) ( (
> #2315
> 1 ? ( GENERAL_NAME_free ) : ( void ( * ) ( GENERAL_NAME * ) ) 0 ) ) ) ) ;
> 
> and the error refers to `extern "C"', which leaves me thinking this has
> something to do with the way C code is mixed with C++.
> 



Just some further observations:

GENERAL_NAME_free is defined using macros, particularly
IMPLEMENT_ASN1_FUNCTIONS in v3_genn.c which eventually calls
IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname in asn1t.h

There is an existing OpenSSL bug report about OpenSSL not playing nicely
with C++ on Solaris Sun Pro toolchain:
http://rt.openssl.org/Ticket/Display.html?id=2308&user=guest&pass=guest

and more examples of people running into similar types of problem...

http://stackoverflow.com/questions/9402778/upgrading-openssl-results-in-compiler-error-with-sk-x509-pop-free

I tried wrapping all the #include <openssl/something.h> statements in
extern "C" {}; but that didn't help me.



> 
>>
>> 2012/9/20 Daniel Pocock <daniel at opencsw.org>
>>
>>>
>>>
>>>
>>> I've had another go at building reSIProcte
>>>
>>> It fails with this (dislikes something from OpenSSL) on unstable10[xs]
>>> boxes:
>>>
>>>
>>> Error: Different types for "?:" (extern "C" void(*)(GENERAL_NAME_st*)
>>> and void(*)(GENERAL_NAME_st*)).
>>>
>>>
>>> and Google found other people having this issue with other projects:
>>>
>>> http://echelog.com/logs/browse/illumos/1324594800
>>>
>>>
>>> Can anyone comment on this or the status of the OpenSSL package?
>>>
>>>
>>>
>>>
>>> libtool: compile:  /opt/SUNWspro/bin/CC -DHAVE_CONFIG_H -I. -I../..
>>> -I/opt/csw/bdb48/include -I/opt/csw/include -DRESIP_OSTYPE_SUNOS
>>> -DRESIP_ARCH_I386 -DRESIP_LARCH_IA32 -D_REENTRANT
>>> -DRESIP_TOOLCHAIN_SUNPRO -xO3 -m32 -xarch=pentium_pro -xchip=pentium_pro
>>> -c ssl/Security.cxx  -KPIC -DPIC -o .libs/Security.o
>>> "ssl/Security.cxx", line 2315: Error: Different types for "?:" (extern
>>> "C" void(*)(GENERAL_NAME_st*) and void(*)(GENERAL_NAME_st*)).
>>> "ssl/Security.cxx", line 2315: Warning (Anachronism): Formal argument
>>> func of type extern "C" void(*)(void*) in call to sk_pop_free(stack_st*,
>>> extern "C" void(*)(void*)) is being passed void(*)(void*).
>>> "ssl/Security.cxx", line 2591: Error: Different types for "?:" (extern
>>> "C" void(*)(GENERAL_NAME_st*) and void(*)(GENERAL_NAME_st*)).
>>> "ssl/Security.cxx", line 2591: Warning (Anachronism): Formal argument
>>> func of type extern "C" void(*)(void*) in call to sk_pop_free(stack_st*,
>>> extern "C" void(*)(void*)) is being passed void(*)(void*).
>>> 2 Error(s) and 2 Warning(s) detected.
>>> gmake[4]: *** [Security.lo] Error 1
>>> gmake[4]: Leaving directory
>>>
>>> `/home/daniel/opencsw/resiprocate/trunk/work/solaris10-i386/build-isa-pentium_pro/resiprocate-1.8.5/resip/stack'
>>> _______________________________________________
>>> maintainers mailing list
>>> maintainers at lists.opencsw.org
>>> https://lists.opencsw.org/mailman/listinfo/maintainers
>>> .:: This mailing list's archive is public. ::.
>>>
>>
>>
>>
>> _______________________________________________
>> maintainers mailing list
>> maintainers at lists.opencsw.org
>> https://lists.opencsw.org/mailman/listinfo/maintainers
>> .:: This mailing list's archive is public. ::.
> 
> _______________________________________________
> maintainers mailing list
> maintainers at lists.opencsw.org
> https://lists.opencsw.org/mailman/listinfo/maintainers
> .:: This mailing list's archive is public. ::.



More information about the maintainers mailing list