OpenPKG CVS Repository
http://cvs.openpkg.org/
Server: cvs.openpkg.org Name: Ralf S. Engelschall
Root: /v/openpkg/cvs Email: [EMAIL PROTECTED]
Module: openpkg-src Date: 23-May-2007 11:41:03
Branch: HEAD Handle: 2007052310410300
Modified files:
openpkg-src/openssl openssl.patch openssl.spec
Log:
apply a temporary fix for the run-time problems when compiled with GCC
4.2.0 under 64-bit platforms
Summary:
RevisionChanges Path
1.27+311 -0 openpkg-src/openssl/openssl.patch
1.85+1 -1 openpkg-src/openssl/openssl.spec
patch -p0 '@@ .'
Index: openpkg-src/openssl/openssl.patch
$ cvs diff -u -r1.26 -r1.27 openssl.patch
--- openpkg-src/openssl/openssl.patch 5 Mar 2007 12:38:17 - 1.26
+++ openpkg-src/openssl/openssl.patch 23 May 2007 09:41:03 - 1.27
@@ -104,3 +104,314 @@
if (pci) { PROXY_CERT_INFO_EXTENSION_free(pci); pci = NULL; }
end:
sk_CONF_VALUE_pop_free(vals, X509V3_conf_free);
+
+-
+
+Temporary fix for OpenSSL to work under GCC 4.2 world order. This
+especially fixes operations like openssl genrsa or ssh-keygen under
+some 64-bit platforms like FreeBSD/amd64. The OpenSSL team is already
+working on an official fix. -- rse 20070523
+
+Derived from:
http://dev.gentoo.org/~dirtyepic/patches/openssl-0.9.8e-gcc42.patch
+
+Index: crypto/asn1/a_d2i_fp.c
+--- crypto/asn1/a_d2i_fp.c.orig 2005-05-09 02:27:32 +0200
crypto/asn1/a_d2i_fp.c 2007-05-23 11:35:26 +0200
+@@ -81,6 +81,7 @@
+ BIO_free(b);
+ return(ret);
+ }
++const void * __attribute__((unused)) __ASN1_d2i_fp=(const
void*)openssl_fcast(ASN1_d2i_fp);
+ #endif
+
+ void *ASN1_d2i_bio(void *(*xnew)(void), d2i_of_void *d2i, BIO *in, void **x)
+@@ -99,6 +100,7 @@
+ if (b != NULL) BUF_MEM_free(b);
+ return(ret);
+ }
++const void * __attribute__((unused)) __ASN1_d2i_bio=(const
void*)openssl_fcast(ASN1_d2i_bio);
+
+ #endif
+
+Index: crypto/asn1/a_dup.c
+--- crypto/asn1/a_dup.c.orig 2005-05-09 02:27:32 +0200
crypto/asn1/a_dup.c 2007-05-23 11:35:26 +0200
+@@ -82,6 +82,7 @@
+ OPENSSL_free(b);
+ return(ret);
+ }
++const void * __attribute__((unused)) __ASN1_dup=(const
void*)openssl_fcast(ASN1_dup);
+
+ #endif
+
+Index: crypto/asn1/a_i2d_fp.c
+--- crypto/asn1/a_i2d_fp.c.orig 2005-05-09 02:27:32 +0200
crypto/asn1/a_i2d_fp.c 2007-05-23 11:35:26 +0200
+@@ -79,6 +79,7 @@
+ BIO_free(b);
+ return(ret);
+ }
++const void * __attribute__((unused)) __ASN1_i2d_fp=(const
void*)openssl_fcast(ASN1_i2d_fp);
+ #endif
+
+ int ASN1_i2d_bio(i2d_of_void *i2d, BIO *out, unsigned char *x)
+@@ -113,6 +114,7 @@
+ OPENSSL_free(b);
+ return(ret);
+ }
++const void * __attribute__((unused)) __ASN1_i2d_bio=(const
void*)openssl_fcast(ASN1_i2d_bio);
+
+ #endif
+
+Index: crypto/asn1/asn1.h
+--- crypto/asn1/asn1.h.orig 2006-02-19 14:45:22 +0100
crypto/asn1/asn1.h 2007-05-23 11:35:26 +0200
+@@ -902,23 +902,26 @@
+
+ /* Used to implement other functions */
+ void *ASN1_dup(i2d_of_void *i2d, d2i_of_void *d2i, char *x);
++extern const void *__ASN1_dup;
+ #define ASN1_dup_of(type,i2d,d2i,x) \
+-((type *(*)(I2D_OF(type),D2I_OF(type),type
*))openssl_fcast(ASN1_dup))(i2d,d2i,x)
++((type *(*)(I2D_OF(type),D2I_OF(type),type *))__ASN1_dup)(i2d,d2i,x)
+ #define ASN1_dup_of_const(type,i2d,d2i,x) \
+-((type *(*)(I2D_OF_const(type),D2I_OF(type),type
*))openssl_fcast(ASN1_dup))(i2d,d2i,x)
++((type *(*)(I2D_OF_const(type),D2I_OF(type),type
*))__ASN1_dup)(i2d,d2i,x)
+
+ void *ASN1_item_dup(const ASN1_ITEM *it, void *x);
+
+ #ifndef OPENSSL_NO_FP_API
+ void *ASN1_d2i_fp(void *(*xnew)(void), d2i_of_void *d2i, FILE *in, void
**x);
++extern const void *__ASN1_d2i_fp;
+ #define ASN1_d2i_fp_of(type,xnew,d2i,in,x) \
+-((type *(*)(type *(*)(void),D2I_OF(type),FILE *,type
**))openssl_fcast(ASN1_d2i_fp))(xnew,d2i,in,x)
++((type *(*)(type *(*)(void),D2I_OF(type),FILE *,type
**))__ASN1_d2i_fp)(xnew,d2i,in,x)
+ void *ASN1_item_d2i_fp(const ASN1_ITEM *it, FILE *in, void *x);
+ int ASN1_i2d_fp(i2d_of_void *i2d,FILE *out,void *x);
++extern const void *__ASN1_i2d_fp;
+ #define ASN1_i2d_fp_of(type,i2d,out,x) \
+-((int (*)(I2D_OF(type),FILE *,type
*))openssl_fcast(ASN1_i2d_fp))(i2d,out,x)
++((int (*)(I2D_OF(type),FILE *,type *))__ASN1_i2d_fp)(i2d,out,x