Patchwork Compile error in openssl 1.0.0e

login
register
mail settings
Submitter Chris Diamand
Date May 29, 2012, 10:40 a.m.
Message ID <loom.20120529T123552-567@post.gmane.org>
Download mbox | patch
Permalink /patch/28875/
State Rejected
Headers show

Comments

Chris Diamand - May 29, 2012, 10:40 a.m.
>    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:

"/AF_INET6/,/break/d" ${S}/crypto/bio/bss_dgram.c', d)}"
 }
 
 do_compile () {


Cheers.
Khem Raj - May 29, 2012, 3:49 p.m.
On Tue, May 29, 2012 at 3:40 AM, Chris Diamand <chris@diamand.org> wrote:
>>    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.


would you send it as a proper git formatted patch please

Patch

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