SOURCES: openssl-gcc_4_2.patch - update from bero

arekm arekm at pld-linux.org
Fri Apr 20 22:30:14 CEST 2007


Author: arekm                        Date: Fri Apr 20 20:30:14 2007 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- update from bero

---- Files affected:
SOURCES:
   openssl-gcc_4_2.patch (1.3 -> 1.4) 

---- Diffs:

================================================================
Index: SOURCES/openssl-gcc_4_2.patch
diff -u SOURCES/openssl-gcc_4_2.patch:1.3 SOURCES/openssl-gcc_4_2.patch:1.4
--- SOURCES/openssl-gcc_4_2.patch:1.3	Sat Feb 24 22:13:50 2007
+++ SOURCES/openssl-gcc_4_2.patch	Fri Apr 20 22:30:08 2007
@@ -1,47 +1,10 @@
-From: b... at arklinux.org (Bernhard Rosenkraenzer)
-Newsgroups: mailing.openssl.dev
-Subject: Re: OpenSSL breaks with gcc 4.2
-Date: Thu, 9 Nov 2006 01:56:49 +0800 (CST)
-Organization: NCTU CSIE FreeBSD Server
-Message-ID: <eit5p1$4mi$1 at FreeBSD.csie.nctu.edu.tw>
-
-On Tuesday, 7. November 2006 15:54, Dr. Stephen Henson wrote:
-> On Tue, Nov 07, 2006, Bernhard Rosenkraenzer wrote:
-> > gcc 4.2 no longer allows function casting - which is used rather heavily
-> > by openssl. (To make things worse, it compiles but inserts abort()
-> > statements resulting in app crashes).
->
-> Ugh, I would've thought that flagging a compiliation error would make more
-> sense rather that outputting bad code...
-
-Agreed... Unfortunately sometimes gcc developers' decisions make much sense 
-from the point of the compiler implementor than from that of someone actually 
-using it.
-
-> > Is there a fix to make OpenSSL compatible with gcc 4.2/4.3 yet?
->
-> No there isn't yet, some technique will be needed to make this still work
-> by tweaking some of the macros. Does casting a function to (void *) first
-> then the function cast work?
-
-Yes, but only in a really really ugly way.
-I've attached a patch that make it compile (and work), but I can't say I like 
-it.
-I've tried all sorts of other things (like putting the void* cast directly 
-into the defines, or even adding a (char*) cast and running +1-1 type 
-arithmetics on it), but gcc's optimizer is too smart and throws it away, and 
-errors out just as if it wasn't there), but the attached patch is the only 
-quick fix that works.
-
-I hope someone can come up with a better idea...
-
---- openssl-0.9.8d/crypto/asn1/asn1.h.ark	2006-11-08 19:03:36.000000000 +0100
-+++ openssl-0.9.8d/crypto/asn1/asn1.h	2006-11-08 19:32:10.000000000 +0100
+--- openssl-0.9.8e/crypto/asn1/asn1.h.gcc42~	2006-02-19 14:45:22.000000000 +0100
++++ openssl-0.9.8e/crypto/asn1/asn1.h	2007-03-04 12:35:59.000000000 +0100
 @@ -902,23 +902,26 @@
  
  /* Used to implement other functions */
  void *ASN1_dup(i2d_of_void *i2d, d2i_of_void *d2i, char *x);
-+static void * __attribute__((unused)) __ASN1_dup=(void *)openssl_fcast(ASN1_dup);
++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)
@@ -53,13 +16,13 @@
  
  #ifndef OPENSSL_NO_FP_API
  void *ASN1_d2i_fp(void *(*xnew)(void), d2i_of_void *d2i, FILE *in, void **x);
-+static void * __attribute__((unused)) __ASN1_d2i_fp=(void *)openssl_fcast(ASN1_d2i_fp);
++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);
-+static void * __attribute__((unused)) __ASN1_i2d_fp=(void *)openssl_fcast(ASN1_i2d_fp);
++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)
@@ -73,13 +36,13 @@
  
  #ifndef OPENSSL_NO_BIO
  void *ASN1_d2i_bio(void *(*xnew)(void), d2i_of_void *d2i, BIO *in, void **x);
-+static void * __attribute__((unused)) __ASN1_d2i_bio=(void *)openssl_fcast(ASN1_d2i_bio);
++extern const void *__ASN1_d2i_bio;
  #define ASN1_d2i_bio_of(type,xnew,d2i,in,x) \
 -	((type *(*)(type *(*)(void),D2I_OF(type),BIO *,type **))openssl_fcast(ASN1_d2i_bio))(xnew,d2i,in,x)
 +	((type *(*)(type *(*)(void),D2I_OF(type),BIO *,type **))__ASN1_d2i_bio)(xnew,d2i,in,x)
  void *ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *x);
  int ASN1_i2d_bio(i2d_of_void *i2d,BIO *out, unsigned char *x);
-+static void * __attribute__((unused)) __ASN1_i2d_bio=(void *)openssl_fcast(ASN1_i2d_bio);
++extern const void *__ASN1_i2d_bio;
  #define ASN1_i2d_bio_of(type,i2d,out,x) \
 -	((int (*)(I2D_OF(type),BIO *,type *))openssl_fcast(ASN1_i2d_bio))(i2d,out,x)
 +	((int (*)(I2D_OF(type),BIO *,type *))__ASN1_i2d_bio)(i2d,out,x)
@@ -93,34 +56,33 @@
  void *ASN1_item_unpack(ASN1_STRING *oct, const ASN1_ITEM *it);
  ASN1_STRING *ASN1_pack_string(void *obj, i2d_of_void *i2d,
  			      ASN1_OCTET_STRING **oct);
-+static void * __attribute__((unused)) __ASN1_pack_string=(void *)openssl_fcast(ASN1_pack_string);
++extern const void *__ASN1_pack_string;
  #define ASN1_pack_string_of(type,obj,i2d,oct) \
 -	((ASN1_STRING *(*)(type *,I2D_OF(type),ASN1_OCTET_STRING **))openssl_fcast(ASN1_pack_string))(obj,i2d,oct)
 +	((ASN1_STRING *(*)(type *,I2D_OF(type),ASN1_OCTET_STRING **))__ASN1_pack_string)(obj,i2d,oct)
  ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct);
  
  void ASN1_STRING_set_default_mask(unsigned long mask);
---- openssl-0.9.8d/crypto/ocsp/ocsp.h.ark	2006-11-08 19:28:48.000000000 +0100
-+++ openssl-0.9.8d/crypto/ocsp/ocsp.h	2006-11-08 19:29:47.000000000 +0100
+--- openssl-0.9.8e/crypto/ocsp/ocsp.h.gcc42~	2005-05-13 01:01:43.000000000 +0200
++++ openssl-0.9.8e/crypto/ocsp/ocsp.h	2007-03-04 12:35:59.000000000 +0100
 @@ -468,8 +468,9 @@
  
  ASN1_STRING *ASN1_STRING_encode(ASN1_STRING *s, i2d_of_void *i2d,
  				void *data, STACK_OF(ASN1_OBJECT) *sk);
-+static void * __attribute__((unused)) __ASN1_STRING_encode=(void *)openssl_fcast(ASN1_STRING_encode);
++extern const void *__ASN1_STRING_encode;
  #define ASN1_STRING_encode_of(type,s,i2d,data,sk) \
 -((ASN1_STRING *(*)(ASN1_STRING *,I2D_OF(type),type *,STACK_OF(ASN1_OBJECT) *))openssl_fcast(ASN1_STRING_encode))(s,i2d,data,sk)
 +((ASN1_STRING *(*)(ASN1_STRING *,I2D_OF(type),type *,STACK_OF(ASN1_OBJECT) *))__ASN1_STRING_encode)(s,i2d,data,sk)
  
  X509_EXTENSION *OCSP_crlID_new(char *url, long *n, char *tim);
  
---- openssl-0.9.8d/crypto/pem/pem.h.ark	2006-11-08 19:09:51.000000000 +0100
-+++ openssl-0.9.8d/crypto/pem/pem.h	2006-11-08 19:43:45.000000000 +0100
-@@ -220,19 +220,22 @@
+--- openssl-0.9.8e/crypto/pem/pem.h.gcc42~	2006-12-19 20:47:36.000000000 +0100
++++ openssl-0.9.8e/crypto/pem/pem.h	2007-03-04 12:44:19.000000000 +0100
+@@ -220,19 +220,19 @@
  #define IMPLEMENT_PEM_read_fp(name, type, str, asn1) \
  type *PEM_read_##name(FILE *fp, type **x, pem_password_cb *cb, void *u)\
  { \
 -return(((type *(*)(D2I_OF(type),char *,FILE *,type **,pem_password_cb *,void *))openssl_fcast(PEM_ASN1_read))(d2i_##asn1, str,fp,x,cb,u)); \
-+static void *__PEM_ASN1_read=(void *)openssl_fcast(PEM_ASN1_read); \
 +return(((type *(*)(D2I_OF(type),char *,FILE *,type **,pem_password_cb *,void *))__PEM_ASN1_read)(d2i_##asn1, str,fp,x,cb,u)); \
  } 
  
@@ -128,7 +90,6 @@
  int PEM_write_##name(FILE *fp, type *x) \
  { \
 -return(((int (*)(I2D_OF(type),const char *,FILE *,type *, const EVP_CIPHER *,unsigned char *,int, pem_password_cb *,void *))openssl_fcast(PEM_ASN1_write))(i2d_##asn1,str,fp,x,NULL,NULL,0,NULL,NULL)); \
-+static void *__PEM_ASN1_write=(void *)openssl_fcast(PEM_ASN1_write); \
 +return(((int (*)(I2D_OF(type),const char *,FILE *,type *, const EVP_CIPHER *,unsigned char *,int, pem_password_cb *,void *))__PEM_ASN1_write)(i2d_##asn1,str,fp,x,NULL,NULL,0,NULL,NULL)); \
  }
  
@@ -136,37 +97,33 @@
  int PEM_write_##name(FILE *fp, const type *x) \
  { \
 -return(((int (*)(I2D_OF_const(type),const char *,FILE *, const type *, const EVP_CIPHER *,unsigned char *,int, pem_password_cb *,void *))openssl_fcast(PEM_ASN1_write))(i2d_##asn1,str,fp,x,NULL,NULL,0,NULL,NULL)); \
-+static void *__PEM_ASN1_write=(void *)openssl_fcast(PEM_ASN1_write); \
 +return(((int (*)(I2D_OF_const(type),const char *,FILE *, const type *, const EVP_CIPHER *,unsigned char *,int, pem_password_cb *,void *))__PEM_ASN1_write)(i2d_##asn1,str,fp,x,NULL,NULL,0,NULL,NULL)); \
  }
  
  #define IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) \
-@@ -240,7 +243,8 @@
+@@ -240,7 +243,7 @@
  	     unsigned char *kstr, int klen, pem_password_cb *cb, \
  		  void *u) \
  	{ \
 -	return(((int (*)(I2D_OF(type),const char *,FILE *,type *, const EVP_CIPHER *,unsigned char *,int, pem_password_cb *,void *))openssl_fcast(PEM_ASN1_write))(i2d_##asn1,str,fp,x,enc,kstr,klen,cb,u)); \
-+	static void *__PEM_ASN1_write=(void *)openssl_fcast(PEM_ASN1_write); \
 +	return(((int (*)(I2D_OF(type),const char *,FILE *,type *, const EVP_CIPHER *,unsigned char *,int, pem_password_cb *,void *))__PEM_ASN1_write)(i2d_##asn1,str,fp,x,enc,kstr,klen,cb,u)); \
  	}
  
  #define IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) \
-@@ -248,7 +252,8 @@
+@@ -248,7 +252,7 @@
  	     unsigned char *kstr, int klen, pem_password_cb *cb, \
  		  void *u) \
  	{ \
 -	return(((int (*)(I2D_OF_const(type),const char *,FILE *,type *, const EVP_CIPHER *,unsigned char *,int, pem_password_cb *,void *))openssl_fcast(PEM_ASN1_write))(i2d_##asn1,str,fp,x,enc,kstr,klen,cb,u)); \
-+	static void *__PEM_ASN1_write=(void *)openssl_fcast(PEM_ASN1_write); \
 +	return(((int (*)(I2D_OF_const(type),const char *,FILE *,type *, const EVP_CIPHER *,unsigned char *,int, pem_password_cb *,void *))__PEM_ASN1_write)(i2d_##asn1,str,fp,x,enc,kstr,klen,cb,u)); \
  	}
  
  #endif
-@@ -256,33 +261,38 @@
+@@ -256,33 +261,33 @@
  #define IMPLEMENT_PEM_read_bio(name, type, str, asn1) \
  type *PEM_read_bio_##name(BIO *bp, type **x, pem_password_cb *cb, void *u)\
  { \
 -return(((type *(*)(D2I_OF(type),const char *,BIO *,type **,pem_password_cb *,void *))openssl_fcast(PEM_ASN1_read_bio))(d2i_##asn1, str,bp,x,cb,u)); \
-+static void *__PEM_ASN1_read_bio=(void *)openssl_fcast(PEM_ASN1_read_bio); \
 +return(((type *(*)(D2I_OF(type),const char *,BIO *,type **,pem_password_cb *,void *))__PEM_ASN1_read_bio)(d2i_##asn1, str,bp,x,cb,u)); \
  }
  
@@ -174,7 +131,6 @@
  int PEM_write_bio_##name(BIO *bp, type *x) \
  { \
 -return(((int (*)(I2D_OF(type),const char *,BIO *,type *, const EVP_CIPHER *,unsigned char *,int, pem_password_cb *,void *))openssl_fcast(PEM_ASN1_write_bio))(i2d_##asn1,str,bp,x,NULL,NULL,0,NULL,NULL)); \
-+static void *__PEM_ASN1_write_bio=(void *)openssl_fcast(PEM_ASN1_write_bio); \
 +return(((int (*)(I2D_OF(type),const char *,BIO *,type *, const EVP_CIPHER *,unsigned char *,int, pem_password_cb *,void *))__PEM_ASN1_write_bio)(i2d_##asn1,str,bp,x,NULL,NULL,0,NULL,NULL)); \
  }
  
@@ -182,7 +138,6 @@
  int PEM_write_bio_##name(BIO *bp, const type *x) \
  { \
 -return(((int (*)(I2D_OF_const(type),const char *,BIO *,const type *, const EVP_CIPHER *,unsigned char *,int, pem_password_cb *,void *))openssl_fcast(PEM_ASN1_write_bio))(i2d_##asn1,str,bp,x,NULL,NULL,0,NULL,NULL)); \
-+static void *__PEM_ASN1_write_bio=(void *)openssl_fcast(PEM_ASN1_write_bio); \
 +return(((int (*)(I2D_OF_const(type),const char *,BIO *,const type *, const EVP_CIPHER *,unsigned char *,int, pem_password_cb *,void *))__PEM_ASN1_write_bio)(i2d_##asn1,str,bp,x,NULL,NULL,0,NULL,NULL)); \
  }
  
@@ -191,7 +146,6 @@
  	     unsigned char *kstr, int klen, pem_password_cb *cb, void *u) \
  	{ \
 -	return(((int (*)(I2D_OF(type),const char *,BIO *,type *,const EVP_CIPHER *,unsigned char *,int,pem_password_cb *,void *))openssl_fcast(PEM_ASN1_write_bio))(i2d_##asn1,str,bp,x,enc,kstr,klen,cb,u)); \
-+	static void *__PEM_ASN1_write_bio=(void *)openssl_fcast(PEM_ASN1_write_bio); \
 +	return(((int (*)(I2D_OF(type),const char *,BIO *,type *,const EVP_CIPHER *,unsigned char *,int,pem_password_cb *,void *))__PEM_ASN1_write_bio)(i2d_##asn1,str,bp,x,enc,kstr,klen,cb,u)); \
  	}
  
@@ -200,7 +154,6 @@
  	     unsigned char *kstr, int klen, pem_password_cb *cb, void *u) \
  	{ \
 -	return(((int (*)(I2D_OF_const(type),const char *,BIO *,type *,const EVP_CIPHER *,unsigned char *,int,pem_password_cb *,void *))openssl_fcast(PEM_ASN1_write_bio))(i2d_##asn1,str,bp,x,enc,kstr,klen,cb,u)); \
-+	static void *__PEM_ASN1_write_bio=(void *)openssl_fcast(PEM_ASN1_write_bio); \
 +	return(((int (*)(I2D_OF_const(type),const char *,BIO *,type *,const EVP_CIPHER *,unsigned char *,int,pem_password_cb *,void *))__PEM_ASN1_write_bio)(i2d_##asn1,str,bp,x,enc,kstr,klen,cb,u)); \
  	}
  
@@ -209,22 +162,130 @@
  	     pem_password_cb *cb, void *u);
  void *	PEM_ASN1_read_bio(d2i_of_void *d2i, const char *name, BIO *bp,
  			  void **x, pem_password_cb *cb, void *u);
-+static void * __attribute__((unused)) __PEM_ASN1_read_bio=(void *)openssl_fcast(PEM_ASN1_read_bio);
++extern const void *__PEM_ASN1_read_bio;
  #define PEM_ASN1_read_bio_of(type,d2i,name,bp,x,cb,u) \
 -((type *(*)(D2I_OF(type),const char *,BIO *,type **,pem_password_cb *,void *))openssl_fcast(PEM_ASN1_read_bio))(d2i,name,bp,x,cb,u)
 +((type *(*)(D2I_OF(type),const char *,BIO *,type **,pem_password_cb *,void *))__PEM_ASN1_read_bio)(d2i,name,bp,x,cb,u)
  int	PEM_ASN1_write_bio(i2d_of_void *i2d,const char *name,BIO *bp,char *x,
  			   const EVP_CIPHER *enc,unsigned char *kstr,int klen,
  			   pem_password_cb *cb, void *u);
-+static void * __attribute__((unused)) __PEM_ASN1_write_bio=(void *)openssl_fcast(PEM_ASN1_write_bio);
++extern const void *__PEM_ASN1_write_bio;
  #define PEM_ASN1_write_bio_of(type,i2d,name,bp,x,enc,kstr,klen,cb,u) \
 -	((int (*)(I2D_OF(type),const char *,BIO *,type *, const EVP_CIPHER *,unsigned char *,int, pem_password_cb *,void *))openssl_fcast(PEM_ASN1_write_bio))(i2d,name,bp,x,enc,kstr,klen,cb,u)
 +	((int (*)(I2D_OF(type),const char *,BIO *,type *, const EVP_CIPHER *,unsigned char *,int, pem_password_cb *,void *))__PEM_ASN1_write_bio)(i2d,name,bp,x,enc,kstr,klen,cb,u)
  
  STACK_OF(X509_INFO) *	PEM_X509_INFO_read_bio(BIO *bp, STACK_OF(X509_INFO) *sk, pem_password_cb *cb, void *u);
  int	PEM_X509_INFO_write_bio(BIO *bp,X509_INFO *xi, EVP_CIPHER *enc,
-
-______________________________________________________________________
-OpenSSL Project                                 http://www.openssl.org
-Development Mailing List                       openssl-... at openssl.org
-Automated List Manager                           majord... at openssl.org
+@@ -566,11 +566,13 @@
+ int	PEM_write(FILE *fp,char *name,char *hdr,unsigned char *data,long len);
+ void *  PEM_ASN1_read(d2i_of_void *d2i, const char *name, FILE *fp, void **x,
+ 		      pem_password_cb *cb, void *u);
++extern const void *__PEM_ASN1_read;
+ int	PEM_ASN1_write(i2d_of_void *i2d,const char *name,FILE *fp,
+ 		       char *x,const EVP_CIPHER *enc,unsigned char *kstr,
+ 		       int klen,pem_password_cb *callback, void *u);
+ STACK_OF(X509_INFO) *	PEM_X509_INFO_read(FILE *fp, STACK_OF(X509_INFO) *sk,
+ 	pem_password_cb *cb, void *u);
++extern const void *__PEM_ASN1_write;
+ #endif
+ 
+ int	PEM_SealInit(PEM_ENCODE_SEAL_CTX *ctx, EVP_CIPHER *type,
+--- openssl-0.9.8e/crypto/asn1/a_d2i_fp.c.ark	2007-04-17 17:50:28.000000000 +0000
++++ openssl-0.9.8e/crypto/asn1/a_d2i_fp.c	2007-04-17 19:17:24.000000000 +0000
+@@ -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
+ 
+--- openssl-0.9.8e/crypto/asn1/a_dup.c.ark	2007-04-17 17:49:31.000000000 +0000
++++ openssl-0.9.8e/crypto/asn1/a_dup.c	2007-04-17 17:49:59.000000000 +0000
+@@ -82,6 +82,7 @@
+ 	OPENSSL_free(b);
+ 	return(ret);
+ 	}
++const void * __attribute__((unused)) __ASN1_dup=(const void*)openssl_fcast(ASN1_dup);
+ 
+ #endif
+ 
+--- openssl-0.9.8e/crypto/asn1/a_i2d_fp.c.ark	2007-04-17 17:52:19.000000000 +0000
++++ openssl-0.9.8e/crypto/asn1/a_i2d_fp.c	2007-04-17 19:19:29.000000000 +0000
+@@ -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
+ 
+--- openssl-0.9.8e/crypto/asn1/asn_pack.c.ark	2007-04-17 19:18:35.000000000 +0000
++++ openssl-0.9.8e/crypto/asn1/asn_pack.c	2007-04-17 19:19:20.000000000 +0000
+@@ -144,6 +144,7 @@
+ 	i2d (obj, &p);
+ 	return octmp;
+ }
++const void * __attribute__((unused)) __ASN1_pack_string=(const void*)openssl_fcast(ASN1_pack_string);
+ 
+ #endif
+ 
+--- openssl-0.9.8e/crypto/ocsp/ocsp_ext.c.ark	2007-04-17 19:20:35.000000000 +0000
++++ openssl-0.9.8e/crypto/ocsp/ocsp_ext.c	2007-04-17 19:21:19.000000000 +0000
+@@ -305,6 +305,7 @@
+ 	if (b) OPENSSL_free(b);
+ 	return NULL;
+ 	}
++const void * __attribute__((unused)) __ASN1_STRING_encode=(const void*)openssl_fcast(ASN1_STRING_encode);
+ 
+ /* Nonce handling functions */
+ 
+--- openssl-0.9.8e/crypto/pem/pem_lib.c.ark	2007-04-17 19:21:44.000000000 +0000
++++ openssl-0.9.8e/crypto/pem/pem_lib.c	2007-04-17 19:26:35.000000000 +0000
+@@ -174,6 +174,7 @@
+         BIO_free(b);
+         return(ret);
+ 	}
++const void * __attribute__((unused)) __PEM_ASN1_read=(const void*)openssl_fcast(PEM_ASN1_read);
+ #endif
+ 
+ static int check_pem(const char *nm, const char *name)
+@@ -277,6 +278,7 @@
+         BIO_free(b);
+         return(ret);
+         }
++const void * __attribute__((unused)) __PEM_ASN1_write=(const void*)openssl_fcast(PEM_ASN1_write);
+ #endif
+ 
+ int PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp,
+@@ -381,6 +383,7 @@
+ 		}
+ 	return(ret);
+ 	}
++const void * __attribute__((unused)) __PEM_ASN1_write_bio=(const void*)openssl_fcast(PEM_ASN1_write_bio);
+ 
+ int PEM_do_header(EVP_CIPHER_INFO *cipher, unsigned char *data, long *plen,
+ 	     pem_password_cb *callback,void *u)
+--- openssl-0.9.8e/crypto/pem/pem_oth.c.ark	2007-04-17 19:27:10.000000000 +0000
++++ openssl-0.9.8e/crypto/pem/pem_oth.c	2007-04-17 19:30:00.000000000 +0000
+@@ -84,3 +84,4 @@
+ 	OPENSSL_free(data);
+ 	return(ret);
+ 	}
++const void * __attribute__((unused)) __PEM_ASN1_read_bio=(const void*)openssl_fcast(PEM_ASN1_read_bio);
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/SOURCES/openssl-gcc_4_2.patch?r1=1.3&r2=1.4&f=u



More information about the pld-cvs-commit mailing list