[oe] Compile error in openssl 1.0.0e

Chris Diamand chris at diamand.org
Tue May 29 10:40:03 UTC 2012


>    if ( data->connected )
>        ret=writesocket(b->num,in,inl);
>    else
>        {
>        int peerlen = sizeof(data->peer);
> 
>        if (data->peer.sa.sa_family == AF_INET)
>            peerlen = sizeof(data->peer.sa_in);
> #if OPENSSL_USE_IPV6                               /**** HERE ****/
>    case BIO_C_FILE_TELL:
>    case BIO_CTRL_INFO:
>        ret=0;
>        break;
>    case BIO_C_SET_FD:
>        dgram_clear(b);
>        b->num= *((int *)ptr);
>        b->shutdown=(int)num;
>        b->init=1;
>        break;
>    case BIO_C_GET_FD:
>        if (b->init)
>            {
>            ip=(int *)ptr;
>            if (ip != NULL) *ip=b->num;
>            ret=b->num;
>            }
>        else
>            ret= -1;
>        break;
>    case BIO_CTRL_GET_CLOSE:
>        ret=b->shutdown;
>        break;
>    case BIO_CTRL_SET_CLOSE:
>        b->shutdown=(int)num;
>        break;
>    case BIO_CTRL_PENDING:
> ...
> 
> If OPENSSL_USE_IPV6 is defined it puts a random case label (sans
> switch() ) in the middle of the function. This is clearly not going to
> work.
> 
> This has been fixed in the latest version, 1.0.1c, which compiles
> without errors.
> 
> Could the openssl recipe be updated to the latest version which actually 
builds?
> 
> Cheers,
> Chris.
> 

Just looked again. The openssl source actually appears to be fine - it's this 
sed line in 
recipes/openssl/openssl.inc:

diff --git a/recipes/openssl/openssl.inc b/recipes/openssl/openssl.inc
index 2aff24a..d087a8b 100644
--- a/recipes/openssl/openssl.inc
+++ b/recipes/openssl/openssl.inc
@@ -106,7 +106,8 @@ do_configure () {
        perl ./Configure ${EXTRA_OECONF} shared --prefix=$useprefix --
openssldir=${libdir}/ssl $target
 
        eval "${@base_contains('DISTRO_FEATURES', 'largefile', '', 'sed -i -e 
"/_FILE_OFFSET_BITS/,/#endif/d" ${S}/crypto/bio/bss_file.c', d)}"
-       eval "${@base_contains('DISTRO_FEATURES', 'ipv6', '', 'sed -i -e 
"/AF_INET6/,/break/d" ${S}/crypto/bio/bss_dgram.c', d)}"
+
+       # eval "${@base_contains('DISTRO_FEATURES', 'ipv6', '', 'sed -i -e 
"/AF_INET6/,/break/d" ${S}/crypto/bio/bss_dgram.c', d)}"
 }
 
 do_compile () {


Cheers.






More information about the Openembedded-devel mailing list