[sam.sharma@gat.com - Wed Mar 29 02:30:32 2006]:

> Hi
>
> I think fPIC is required, the code may not compile without fPIC. I

will try
> with other 0.9.7e/f/g version and let you know. Also on other 64bit

systems
> i.e. HP-UX, Solaris, Linux x86_64, SGI the openssl works just fine.
>
> The x_name.c file difference between 7d and 8a is not much as shown

below. I
> see that there are variable type changes and some defines.
>
> [srbkit@charm:ssl]$ diff 64/openssl-0.9.7d/crypto/asn1/x_name.c
> 64.8a/openssl-0.9.8a/crypto/asn1/x_name.c
> 64c64
> < static int x509_name_ex_d2i(ASN1_VALUE **val, unsigned char **in, long
> len, const ASN1_ITEM *it,
> ---
> > static int x509_name_ex_d2i(ASN1_VALUE **val, const unsigned char **in,

> long len, const ASN1_ITEM *it,
> 126c126
> < ASN1err(ASN1_F_X509_NAME_NEW, ERR_R_MALLOC_FAILURE);
> ---
> > ASN1err(ASN1_F_X509_NAME_EX_NEW, ERR_R_MALLOC_FAILURE);

> 159c159
> < static int x509_name_ex_d2i(ASN1_VALUE **val, unsigned char **in, long
> len, const ASN1_ITEM *it,
> ---
> > static int x509_name_ex_d2i(ASN1_VALUE **val, const unsigned char **in,

> long len, const ASN1_ITEM *it,
> 162,163c162,163
> < unsigned char *p = *in, *q;
> < STACK *intname = NULL;
> ---
> > const unsigned char *p = *in, *q;
> > STACK *intname = NULL, **intname_pp = &intname;

> 165c165
> < X509_NAME *nm = NULL;
> ---
> > X509_NAME *nm = NULL, **nm_pp = &nm;

> 171,172c171,173
> < ret = ASN1_item_ex_d2i((ASN1_VALUE **)&intname, &p, len,
> ASN1_ITEM_rptr(X509_NAME_INTERNAL),
> < tag,

aclass,
> opt, ctx);
> ---
> > ret = ASN1_item_ex_d2i((ASN1_VALUE **)intname_pp,
> > &p, len,

ASN1_ITEM_rptr(X509_NAME_INTERNAL),
> > tag, aclass, opt, ctx);

> 177c178
> < if(!x509_name_ex_new((ASN1_VALUE **)&nm, NULL)) goto err;
> ---
> > if(!x509_name_ex_new((ASN1_VALUE **)nm_pp, NULL)) goto err;

> 199c200
> < ASN1err(ASN1_F_D2I_X509_NAME, ERR_R_NESTED_ASN1_ERROR);
> ---
> > ASN1err(ASN1_F_X509_NAME_EX_D2I, ERR_R_NESTED_ASN1_ERROR);

> 221c222
> < STACK *intname = NULL;
> ---
> > STACK *intname = NULL, **intname_pp = &intname;

> 239c240,241
> < len = ASN1_item_ex_i2d((ASN1_VALUE **)&intname, NULL,
> ASN1_ITEM_rptr(X509_NAME_INTERNAL), -1, -1);
> ---
> > len = ASN1_item_ex_i2d((ASN1_VALUE **)intname_pp, NULL,
> > ASN1_ITEM_rptr(X509_NAME_INTERNAL), -1,

-1);
> 242c244,245
> < ASN1_item_ex_i2d((ASN1_VALUE **)&intname, &p,
> ASN1_ITEM_rptr(X509_NAME_INTERNAL), -1, -1);
> ---
> > ASN1_item_ex_i2d((ASN1_VALUE **)intname_pp,
> > &p, ASN1_ITEM_rptr(X509_NAME_INTERNAL), -1, -1);

> 248c251
> < ASN1err(ASN1_F_D2I_X509_NAME, ERR_R_MALLOC_FAILURE);
> ---
> > ASN1err(ASN1_F_X509_NAME_ENCODE, ERR_R_MALLOC_FAILURE);

>
>


This is starting to look more like a compiler bug. Those changes are
largely to avoid a "type puned" warning from newer versions of gcc and
should have no other effect. Have you tried substituting the old version
of that file into a newer version of OpenSSL and seeing what happens?

Steve.
__________________________________________________ ____________________
OpenSSL Project http://www.openssl.org
Development Mailing List openssl-dev@openssl.org
Automated List Manager majordomo@openssl.org