[openssl-commits] [openssl] master update

Rich Salz rsalz at openssl.org
Wed Feb 10 01:13:39 UTC 2016


The branch master has been updated
       via  effaf4dee90beff07bb40f21d81352304a5e8152 (commit)
      from  1ffa8a9685e22a5a0ff1b1322df4d1720b05ce4c (commit)


- Log -----------------------------------------------------------------
commit effaf4dee90beff07bb40f21d81352304a5e8152
Author: Rich Salz <rsalz at akamai.com>
Date:   Sun Jan 31 13:08:23 2016 -0500

    Use NON_EMPTY_TRANSLATION_UNIT, consistently.
    
    This also closes RT 4123
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

-----------------------------------------------------------------------

Summary of changes:
 apps/dhparam.c                   | 14 +++++---------
 apps/dsa.c                       | 13 +++++--------
 apps/dsaparam.c                  | 12 ++++--------
 apps/ec.c                        | 11 ++++-------
 apps/ecparam.c                   | 11 ++++-------
 apps/engine.c                    | 22 ++++++++++------------
 apps/gendsa.c                    | 13 +++++--------
 apps/genrsa.c                    | 10 +++-------
 apps/rsa.c                       | 11 ++++-------
 apps/rsautl.c                    | 11 +++--------
 apps/srp.c                       | 32 ++++++++++++++------------------
 crypto/Makefile.in               |  4 ++--
 crypto/asn1/n_pkey.c             | 16 +++++++---------
 crypto/bn/bn_depr.c              | 15 ++++++++-------
 crypto/bn/rsaz_exp.c             | 10 +++-------
 crypto/build.info                |  2 +-
 crypto/crypto-lib.com            |  2 +-
 crypto/dh/dh_depr.c              | 13 +++++++------
 crypto/dsa/dsa_depr.c            | 23 ++++++++++++-----------
 crypto/ebcdic.c                  | 11 ++++-------
 crypto/ec/ecp_nistp224.c         |  6 +++---
 crypto/ec/ecp_nistp256.c         |  6 +++---
 crypto/ec/ecp_nistp521.c         |  6 +++---
 crypto/ec/ecp_nistputil.c        |  6 +++---
 crypto/evp/e_camellia.c          | 11 ++++-------
 crypto/evp/e_old.c               |  3 +--
 crypto/evp/p_open.c              | 13 ++++---------
 crypto/fips_ers.c                |  6 +++---
 crypto/rand/rand_egd.c           | 17 ++++++++---------
 crypto/rsa/rsa_depr.c            | 15 +++++++--------
 include/openssl/opensslconf.h.in |  6 ++++++
 31 files changed, 151 insertions(+), 200 deletions(-)

diff --git a/apps/dhparam.c b/apps/dhparam.c
index e794dac..f7fd8c0 100644
--- a/apps/dhparam.c
+++ b/apps/dhparam.c
@@ -108,8 +108,11 @@
  *
  */
 
-#include <openssl/opensslconf.h> /* for OPENSSL_NO_DH */
-#ifndef OPENSSL_NO_DH
+#include <openssl/opensslconf.h>
+#ifdef OPENSSL_NO_DH
+NON_EMPTY_TRANSLATION_UNIT
+#else
+
 # include <stdio.h>
 # include <stdlib.h>
 # include <time.h>
@@ -443,11 +446,4 @@ static int dh_cb(int p, int n, BN_GENCB *cb)
     (void)BIO_flush(BN_GENCB_get_arg(cb));
     return 1;
 }
-
-#else                           /* !OPENSSL_NO_DH */
-
-# if PEDANTIC
-static void *dummy = &dummy;
-# endif
-
 #endif
diff --git a/apps/dsa.c b/apps/dsa.c
index ebb5775..5ee97cf 100644
--- a/apps/dsa.c
+++ b/apps/dsa.c
@@ -55,8 +55,11 @@
  * [including the GNU Public Licence.]
  */
 
-#include <openssl/opensslconf.h> /* for OPENSSL_NO_DSA */
-#ifndef OPENSSL_NO_DSA
+#include <openssl/opensslconf.h>
+#ifdef OPENSSL_NO_DSA
+NON_EMPTY_TRANSLATION_UNIT
+#else
+
 # include <stdio.h>
 # include <stdlib.h>
 # include <string.h>
@@ -299,10 +302,4 @@ int dsa_main(int argc, char **argv)
     OPENSSL_free(passout);
     return (ret);
 }
-#else                           /* !OPENSSL_NO_DSA */
-
-# if PEDANTIC
-static void *dummy = &dummy;
-# endif
-
 #endif
diff --git a/apps/dsaparam.c b/apps/dsaparam.c
index c8c383f..7b9ca63 100644
--- a/apps/dsaparam.c
+++ b/apps/dsaparam.c
@@ -55,9 +55,11 @@
  * [including the GNU Public Licence.]
  */
 
-#include <openssl/opensslconf.h> /* for OPENSSL_NO_DSA */
+#include <openssl/opensslconf.h>
+#ifdef OPENSSL_NO_DSA
+NON_EMPTY_TRANSLATION_UNIT
+#else
 
-#ifndef OPENSSL_NO_DSA
 # include <stdio.h>
 # include <stdlib.h>
 # include <time.h>
@@ -347,10 +349,4 @@ static int dsa_cb(int p, int n, BN_GENCB *cb)
 # endif
     return 1;
 }
-#else                           /* !OPENSSL_NO_DSA */
-
-# if PEDANTIC
-static void *dummy = &dummy;
-# endif
-
 #endif
diff --git a/apps/ec.c b/apps/ec.c
index a3fecd4..6f811e3 100644
--- a/apps/ec.c
+++ b/apps/ec.c
@@ -56,7 +56,10 @@
  */
 
 #include <openssl/opensslconf.h>
-#ifndef OPENSSL_NO_EC
+#ifdef OPENSSL_NO_EC
+NON_EMPTY_TRANSLATION_UNIT
+#else
+
 # include <stdio.h>
 # include <stdlib.h>
 # include <string.h>
@@ -307,10 +310,4 @@ int ec_main(int argc, char **argv)
     OPENSSL_free(passout);
     return (ret);
 }
-#else                           /* !OPENSSL_NO_EC */
-
-# if PEDANTIC
-static void *dummy = &dummy;
-# endif
-
 #endif
diff --git a/apps/ecparam.c b/apps/ecparam.c
index b90247c..7889cac 100644
--- a/apps/ecparam.c
+++ b/apps/ecparam.c
@@ -69,7 +69,10 @@
  */
 
 #include <openssl/opensslconf.h>
-#ifndef OPENSSL_NO_EC
+#ifdef OPENSSL_NO_EC
+NON_EMPTY_TRANSLATION_UNIT
+#else
+
 # include <stdio.h>
 # include <stdlib.h>
 # include <time.h>
@@ -502,10 +505,4 @@ int ecparam_main(int argc, char **argv)
     return (ret);
 }
 
-#else                           /* !OPENSSL_NO_EC */
-
-# if PEDANTIC
-static void *dummy = &dummy;
-# endif
-
 #endif
diff --git a/apps/engine.c b/apps/engine.c
index b10f616..b60bfbc 100644
--- a/apps/engine.c
+++ b/apps/engine.c
@@ -56,12 +56,16 @@
  *
  */
 
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "apps.h"
-#include <openssl/err.h>
-#ifndef OPENSSL_NO_ENGINE
+#include <openssl/opensslconf.h>
+#ifdef OPENSSL_NO_ENGINE
+NON_EMPTY_TRANSLATION_UNIT
+#else
+
+# include "apps.h"
+# include <stdio.h>
+# include <stdlib.h>
+# include <string.h>
+# include <openssl/err.h>
 # include <openssl/engine.h>
 # include <openssl/ssl.h>
 
@@ -483,10 +487,4 @@ int engine_main(int argc, char **argv)
     BIO_free_all(out);
     return (ret);
 }
-#else
-
-# if PEDANTIC
-static void *dummy = &dummy;
-# endif
-
 #endif
diff --git a/apps/gendsa.c b/apps/gendsa.c
index 9259c6c..6769968 100644
--- a/apps/gendsa.c
+++ b/apps/gendsa.c
@@ -55,8 +55,11 @@
  * [including the GNU Public Licence.]
  */
 
-#include <openssl/opensslconf.h> /* for OPENSSL_NO_DSA */
-#ifndef OPENSSL_NO_DSA
+#include <openssl/opensslconf.h>
+#ifdef OPENSSL_NO_DSA
+NON_EMPTY_TRANSLATION_UNIT
+#else
+
 # include <stdio.h>
 # include <string.h>
 # include <sys/types.h>
@@ -185,10 +188,4 @@ int gendsa_main(int argc, char **argv)
     OPENSSL_free(passout);
     return (ret);
 }
-#else                           /* !OPENSSL_NO_DSA */
-
-# if PEDANTIC
-static void *dummy = &dummy;
-# endif
-
 #endif
diff --git a/apps/genrsa.c b/apps/genrsa.c
index 33a1567..0b0123fa 100644
--- a/apps/genrsa.c
+++ b/apps/genrsa.c
@@ -56,8 +56,10 @@
  */
 
 #include <openssl/opensslconf.h>
+#ifdef OPENSSL_NO_RSA
+NON_EMPTY_TRANSLATION_UNIT
+#else
 
-#ifndef OPENSSL_NO_RSA
 # include <stdio.h>
 # include <string.h>
 # include <sys/types.h>
@@ -232,10 +234,4 @@ static int genrsa_cb(int p, int n, BN_GENCB *cb)
     (void)BIO_flush(BN_GENCB_get_arg(cb));
     return 1;
 }
-#else                           /* !OPENSSL_NO_RSA */
-
-# if PEDANTIC
-static void *dummy = &dummy;
-# endif
-
 #endif
diff --git a/apps/rsa.c b/apps/rsa.c
index 810713f..23383d9 100644
--- a/apps/rsa.c
+++ b/apps/rsa.c
@@ -104,7 +104,10 @@
  */
 
 #include <openssl/opensslconf.h>
-#ifndef OPENSSL_NO_RSA
+#ifdef OPENSSL_NO_RSA
+NON_EMPTY_TRANSLATION_UNIT
+#else
+
 # include <stdio.h>
 # include <stdlib.h>
 # include <string.h>
@@ -396,10 +399,4 @@ int rsa_main(int argc, char **argv)
     OPENSSL_free(passout);
     return (ret);
 }
-#else                           /* !OPENSSL_NO_RSA */
-
-# if PEDANTIC
-static void *dummy = &dummy;
-# endif
-
 #endif
diff --git a/apps/rsautl.c b/apps/rsautl.c
index beb03eb..f3c90b7 100644
--- a/apps/rsautl.c
+++ b/apps/rsautl.c
@@ -57,7 +57,9 @@
  */
 
 #include <openssl/opensslconf.h>
-#ifndef OPENSSL_NO_RSA
+#ifdef OPENSSL_NO_RSA
+NON_EMPTY_TRANSLATION_UNIT
+#else
 
 # include "apps.h"
 # include <string.h>
@@ -319,11 +321,4 @@ int rsautl_main(int argc, char **argv)
     OPENSSL_free(passin);
     return ret;
 }
-
-#else                           /* !OPENSSL_NO_RSA */
-
-# if PEDANTIC
-static void *dummy = &dummy;
-# endif
-
 #endif
diff --git a/apps/srp.c b/apps/srp.c
index c3e4f43..2c4d746 100644
--- a/apps/srp.c
+++ b/apps/srp.c
@@ -55,19 +55,22 @@
  * Hudson (tjh at cryptsoft.com).
  *
  */
+
 #include <openssl/opensslconf.h>
+#ifdef OPENSSL_NO_SRP
+NON_EMPTY_TRANSLATION_UNIT
+#else
 
-#ifndef OPENSSL_NO_SRP
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <openssl/conf.h>
-#include <openssl/bio.h>
-#include <openssl/err.h>
-#include <openssl/txt_db.h>
-#include <openssl/buffer.h>
-#include <openssl/srp.h>
-#include "apps.h"
+# include <stdio.h>
+# include <stdlib.h>
+# include <string.h>
+# include <openssl/conf.h>
+# include <openssl/bio.h>
+# include <openssl/err.h>
+# include <openssl/txt_db.h>
+# include <openssl/buffer.h>
+# include <openssl/srp.h>
+# include "apps.h"
 
 # define BASE_SECTION    "srp"
 # define CONFIG_FILE "openssl.cnf"
@@ -653,11 +656,4 @@ int srp_main(int argc, char **argv)
     OBJ_cleanup();
     return (ret);
 }
-
-#else
-
-# if PEDANTIC
-static void *dummy = &dummy;
-# endif
-
 #endif
diff --git a/crypto/Makefile.in b/crypto/Makefile.in
index de98f4a..4727e0a 100644
--- a/crypto/Makefile.in
+++ b/crypto/Makefile.in
@@ -33,10 +33,10 @@ GENERAL=Makefile README crypto-lib.com install.com
 LIB= $(TOP)/libcrypto.a
 SHARED_LIB= libcrypto$(SHLIB_EXT)
 LIBSRC=	cryptlib.c mem.c mem_clr.c mem_dbg.c cversion.c ex_data.c cpt_err.c \
-	ebcdic.c uid.c o_time.c o_str.c o_dir.c thr_id.c lock.c fips_ers.c \
+	ebcdic.c uid.c o_time.c o_str.c o_dir.c thr_id.c lock.c \
 	o_init.c o_fips.c mem_sec.c init.c
 LIBOBJ= cryptlib.o mem.o mem_dbg.o cversion.o ex_data.o cpt_err.o \
-	ebcdic.o uid.o o_time.o o_str.o o_dir.o thr_id.o lock.o fips_ers.o \
+	ebcdic.o uid.o o_time.o o_str.o o_dir.o thr_id.o lock.o \
 	o_init.o o_fips.o mem_sec.o init.o $(CPUID_OBJ)
 
 SRC= $(LIBSRC)
diff --git a/crypto/asn1/n_pkey.c b/crypto/asn1/n_pkey.c
index 90ea32c..c7382bd 100644
--- a/crypto/asn1/n_pkey.c
+++ b/crypto/asn1/n_pkey.c
@@ -55,9 +55,13 @@
  * [including the GNU Public Licence.]
  */
 
-#include <stdio.h>
-#include "internal/cryptlib.h"
-#ifndef OPENSSL_NO_RSA
+#include "openssl/opensslconf.h"
+#ifdef OPENSSL_NO_RSA
+NON_EMPTY_TRANSLATION_UNIT
+#else
+
+# include "internal/cryptlib.h"
+# include <stdio.h>
 # include <openssl/rsa.h>
 # include <openssl/objects.h>
 # include <openssl/asn1t.h>
@@ -103,10 +107,4 @@ IMPLEMENT_ASN1_FUNCTIONS_const(NETSCAPE_PKEY)
 
 # endif                         /* OPENSSL_NO_RC4 */
 
-#else                           /* !OPENSSL_NO_RSA */
-
-# if PEDANTIC
-static void *dummy = &dummy;
-# endif
-
 #endif
diff --git a/crypto/bn/bn_depr.c b/crypto/bn/bn_depr.c
index 9e6b08f..debed8d 100644
--- a/crypto/bn/bn_depr.c
+++ b/crypto/bn/bn_depr.c
@@ -57,16 +57,17 @@
  * slurp this code if applications are using them directly.
  */
 
-#include <stdio.h>
-#include <time.h>
-#include "internal/cryptlib.h"
-#include "bn_lcl.h"
 #include <openssl/opensslconf.h>
-#include <openssl/rand.h>
+#if OPENSSL_API_COMPAT >= 0x00908000L
+NON_EMPTY_TRANSLATION_UNIT
+#else
 
-static void *dummy = &dummy;
+# include <stdio.h>
+# include <time.h>
+# include "internal/cryptlib.h"
+# include "bn_lcl.h"
+# include <openssl/rand.h>
 
-#if OPENSSL_API_COMPAT < 0x00908000L
 BIGNUM *BN_generate_prime(BIGNUM *ret, int bits, int safe,
                           const BIGNUM *add, const BIGNUM *rem,
                           void (*callback) (int, int, void *), void *cb_arg)
diff --git a/crypto/bn/rsaz_exp.c b/crypto/bn/rsaz_exp.c
index c54c6fe..7fb70e4 100644
--- a/crypto/bn/rsaz_exp.c
+++ b/crypto/bn/rsaz_exp.c
@@ -42,7 +42,9 @@
 
 #include "rsaz_exp.h"
 
-#ifdef RSAZ_ENABLED
+#ifndef RSAZ_ENABLED
+NON_EMPTY_TRANSLATION_UNIT
+#else
 
 /*
  * See crypto/bn/asm/rsaz-avx2.pl for further details.
@@ -337,10 +339,4 @@ void RSAZ_512_mod_exp(BN_ULONG result[8],
     OPENSSL_cleanse(storage, sizeof(storage));
 }
 
-#else
-
-# if defined(PEDANTIC) || defined(__DECC) || defined(__clang__)
-static void *dummy = &dummy;
-# endif
-
 #endif
diff --git a/crypto/build.info b/crypto/build.info
index f8ae4bd..90f301a 100644
--- a/crypto/build.info
+++ b/crypto/build.info
@@ -1,7 +1,7 @@
 LIBS=../libcrypto
 SOURCE[../libcrypto]=\
         cryptlib.c mem.c mem_dbg.c cversion.c ex_data.c cpt_err.c \
-        ebcdic.c uid.c o_time.c o_str.c o_dir.c thr_id.c lock.c fips_ers.c \
+        ebcdic.c uid.c o_time.c o_str.c o_dir.c thr_id.c lock.c \
         o_init.c o_fips.c mem_sec.c init.c {- $target{cpuid_asm_src} -}
 EXTRA=  ../ms/uplink-x86.pl ../ms/uplink.c ../ms/applink.c \
         x86cpuid.pl x86_64cpuid.pl ia64cpuid.S \
diff --git a/crypto/crypto-lib.com b/crypto/crypto-lib.com
index b31564f..12b8204 100644
--- a/crypto/crypto-lib.com
+++ b/crypto/crypto-lib.com
@@ -217,7 +217,7 @@ $!
 $! Define The Different Encryption "library" Strings.
 $!
 $ LIB_ = "cryptlib,mem,mem_clr,mem_dbg,cversion,ex_data,cpt_err,"+ -
-	"ebcdic,uid,o_time,o_str,o_dir,thr_id,lock,fips_ers,"+ -
+	"ebcdic,uid,o_time,o_str,o_dir,thr_id,lock,"+ -
 	"o_init,o_fips"
 $ LIB_OBJECTS = "o_names,obj_dat,obj_lib,obj_err,obj_xref"
 $ LIB_MD2 = "md2_dgst,md2_one"
diff --git a/crypto/dh/dh_depr.c b/crypto/dh/dh_depr.c
index 4b38570..90ce0b0 100644
--- a/crypto/dh/dh_depr.c
+++ b/crypto/dh/dh_depr.c
@@ -54,15 +54,16 @@
 
 /* This file contains deprecated functions as wrappers to the new ones */
 
-#include <stdio.h>
-#include "internal/cryptlib.h"
-#include <openssl/bn.h>
-#include <openssl/dh.h>
 #include <openssl/opensslconf.h>
+#if OPENSSL_API_COMPAT >= 0x00908000L
+NON_EMPTY_TRANSLATION_UNIT
+#else
 
-static void *dummy = &dummy;
+# include <stdio.h>
+# include "internal/cryptlib.h"
+# include <openssl/bn.h>
+# include <openssl/dh.h>
 
-#if OPENSSL_API_COMPAT < 0x00908000L
 DH *DH_generate_parameters(int prime_len, int generator,
                            void (*callback) (int, int, void *), void *cb_arg)
 {
diff --git a/crypto/dsa/dsa_depr.c b/crypto/dsa/dsa_depr.c
index e02c102..f50fcc0 100644
--- a/crypto/dsa/dsa_depr.c
+++ b/crypto/dsa/dsa_depr.c
@@ -64,19 +64,20 @@
  */
 #define xxxHASH    EVP_sha1()
 
-static void *dummy = &dummy;
-
-#include <stdio.h>
-#include <time.h>
-#include "internal/cryptlib.h"
-#include <openssl/evp.h>
-#include <openssl/bn.h>
-#include <openssl/dsa.h>
-#include <openssl/rand.h>
-#include <openssl/sha.h>
 #include <openssl/opensslconf.h>
+#if OPENSSL_API_COMPAT >= 0x00908000L
+NON_EMPTY_TRANSLATION_UNIT
+#else
+
+# include <stdio.h>
+# include <time.h>
+# include "internal/cryptlib.h"
+# include <openssl/evp.h>
+# include <openssl/bn.h>
+# include <openssl/dsa.h>
+# include <openssl/rand.h>
+# include <openssl/sha.h>
 
-#if OPENSSL_API_COMPAT < 0x00908000L
 DSA *DSA_generate_parameters(int bits,
                              unsigned char *seed_in, int seed_len,
                              int *counter_ret, unsigned long *h_ret,
diff --git a/crypto/ebcdic.c b/crypto/ebcdic.c
index 0f1255a..1248cba 100644
--- a/crypto/ebcdic.c
+++ b/crypto/ebcdic.c
@@ -1,14 +1,11 @@
 
-#ifndef CHARSET_EBCDIC
-
 # include <openssl/e_os2.h>
-# if defined(PEDANTIC) || defined(__DECC) || defined(OPENSSL_SYS_MACOSX) || defined(__clang__)
-static void *dummy = &dummy;
-# endif
-
-#else                           /* CHARSET_EBCDIC */
+#ifndef CHARSET_EBCDIC
+NON_EMPTY_TRANSLATION_UNIT
+#else
 
 # include "ebcdic.h"
+
 /*-
  *      Initial Port for  Apache-1.3     by <Martin.Kraemer at Mch.SNI.De>
  *      Adapted for       OpenSSL-0.9.4  by <Martin.Kraemer at Mch.SNI.De>
diff --git a/crypto/ec/ecp_nistp224.c b/crypto/ec/ecp_nistp224.c
index 173ef5f..a76b60f 100644
--- a/crypto/ec/ecp_nistp224.c
+++ b/crypto/ec/ecp_nistp224.c
@@ -25,7 +25,9 @@
  */
 
 #include <openssl/opensslconf.h>
-#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128
+#ifdef OPENSSL_NO_EC_NISTP_64_GCC_128
+NON_EMPTY_TRANSLATION_UNIT
+#else
 
 # include <stdint.h>
 # include <string.h>
@@ -1677,6 +1679,4 @@ int ec_GFp_nistp224_have_precompute_mult(const EC_GROUP *group)
     return HAVEPRECOMP(group, nistp224);
 }
 
-#else
-static void *dummy = &dummy;
 #endif
diff --git a/crypto/ec/ecp_nistp256.c b/crypto/ec/ecp_nistp256.c
index 9e33acf..d4bff1a 100644
--- a/crypto/ec/ecp_nistp256.c
+++ b/crypto/ec/ecp_nistp256.c
@@ -26,7 +26,9 @@
  */
 
 #include <openssl/opensslconf.h>
-#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128
+#ifdef OPENSSL_NO_EC_NISTP_64_GCC_128
+NON_EMPTY_TRANSLATION_UNIT
+#else
 
 # include <stdint.h>
 # include <string.h>
@@ -2311,6 +2313,4 @@ int ec_GFp_nistp256_have_precompute_mult(const EC_GROUP *group)
 {
     return HAVEPRECOMP(group, nistp256);
 }
-#else
-static void *dummy = &dummy;
 #endif
diff --git a/crypto/ec/ecp_nistp521.c b/crypto/ec/ecp_nistp521.c
index 4fff85a..de61a8a 100644
--- a/crypto/ec/ecp_nistp521.c
+++ b/crypto/ec/ecp_nistp521.c
@@ -26,7 +26,9 @@
  */
 
 #include <openssl/opensslconf.h>
-#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128
+#ifdef OPENSSL_NO_EC_NISTP_64_GCC_128
+NON_EMPTY_TRANSLATION_UNIT
+#else
 
 # ifndef OPENSSL_SYS_VMS
 #  include <stdint.h>
@@ -2106,6 +2108,4 @@ int ec_GFp_nistp521_have_precompute_mult(const EC_GROUP *group)
     return HAVEPRECOMP(group, nistp521);
 }
 
-#else
-static void *dummy = &dummy;
 #endif
diff --git a/crypto/ec/ecp_nistputil.c b/crypto/ec/ecp_nistputil.c
index 67808e2..01c88d8 100644
--- a/crypto/ec/ecp_nistputil.c
+++ b/crypto/ec/ecp_nistputil.c
@@ -18,7 +18,9 @@
  */
 
 #include <openssl/opensslconf.h>
-#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128
+#ifdef OPENSSL_NO_EC_NISTP_64_GCC_128
+NON_EMPTY_TRANSLATION_UNIT
+#else
 
 /*
  * Common utility functions for ecp_nistp224.c, ecp_nistp256.c, ecp_nistp521.c.
@@ -212,6 +214,4 @@ void ec_GFp_nistp_recode_scalar_bits(unsigned char *sign,
     *sign = s & 1;
     *digit = d;
 }
-#else
-static void *dummy = &dummy;
 #endif
diff --git a/crypto/evp/e_camellia.c b/crypto/evp/e_camellia.c
index 924df8d..8ebd226 100644
--- a/crypto/evp/e_camellia.c
+++ b/crypto/evp/e_camellia.c
@@ -53,7 +53,10 @@
  */
 
 #include <openssl/opensslconf.h>
-#ifndef OPENSSL_NO_CAMELLIA
+#ifdef OPENSSL_NO_CAMELLIA
+NON_EMPTY_TRANSLATION_UNIT
+#else
+
 # include <openssl/evp.h>
 # include <openssl/err.h>
 # include <string.h>
@@ -402,10 +405,4 @@ static int camellia_ctr_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
 BLOCK_CIPHER_generic_pack(NID_camellia, 128, 0)
     BLOCK_CIPHER_generic_pack(NID_camellia, 192, 0)
     BLOCK_CIPHER_generic_pack(NID_camellia, 256, 0)
-#else
-
-# ifdef PEDANTIC
-static void *dummy = &dummy;
-# endif
-
 #endif
diff --git a/crypto/evp/e_old.c b/crypto/evp/e_old.c
index 759856a..c318537 100644
--- a/crypto/evp/e_old.c
+++ b/crypto/evp/e_old.c
@@ -57,9 +57,8 @@
  */
 
 #include <openssl/opensslconf.h>
-
 #if OPENSSL_API_COMPAT >= 0x00908000L
-static void *dummy = &dummy;
+NON_EMPTY_TRANSLATION_UNIT
 #else
 
 # include <openssl/evp.h>
diff --git a/crypto/evp/p_open.c b/crypto/evp/p_open.c
index 41a721e..7f9c733 100644
--- a/crypto/evp/p_open.c
+++ b/crypto/evp/p_open.c
@@ -55,11 +55,12 @@
  * [including the GNU Public Licence.]
  */
 
-#include <stdio.h>
 #include "internal/cryptlib.h"
+#ifdef OPENSSL_NO_RSA
+NON_EMPTY_TRANSLATION_UNIT
+#else
 
-#ifndef OPENSSL_NO_RSA
-
+# include <stdio.h>
 # include <openssl/evp.h>
 # include <openssl/objects.h>
 # include <openssl/x509.h>
@@ -117,10 +118,4 @@ int EVP_OpenFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
         i = EVP_DecryptInit_ex(ctx, NULL, NULL, NULL, NULL);
     return (i);
 }
-#else                           /* !OPENSSL_NO_RSA */
-
-# ifdef PEDANTIC
-static void *dummy = &dummy;
-# endif
-
 #endif
diff --git a/crypto/fips_ers.c b/crypto/fips_ers.c
index 1788ed2..ad6935f 100644
--- a/crypto/fips_ers.c
+++ b/crypto/fips_ers.c
@@ -1,7 +1,7 @@
 #include <openssl/opensslconf.h>
 
-#ifdef OPENSSL_FIPS
-# include "fips_err.h"
+#ifndef OPENSSL_FIPS
+NON_EMPTY_TRANSLATION_UNIT
 #else
-static void *dummy = &dummy;
+# include "fips_err.h"
 #endif
diff --git a/crypto/rand/rand_egd.c b/crypto/rand/rand_egd.c
index f0d2e55..6f13717 100644
--- a/crypto/rand/rand_egd.c
+++ b/crypto/rand/rand_egd.c
@@ -53,9 +53,14 @@
  *
  */
 
-#include <openssl/crypto.h>
-#include <openssl/e_os2.h>
-#include <openssl/rand.h>
+#include <openssl/opensslconf.h>
+#ifdef OPENSSL_NO_EGD
+NON_EMPTY_TRANSLATION_UNIT
+#else
+
+# include <openssl/crypto.h>
+# include <openssl/e_os2.h>
+# include <openssl/rand.h>
 
 /*-
  * Query the EGD <URL: http://www.lothar.com/tech/crypto/>.
@@ -94,8 +99,6 @@
  *   RAND_egd() is a wrapper for RAND_egd_bytes() with numbytes=255.
  */
 
-#ifndef OPENSSL_NO_EGD
-
 # if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_NETWARE) || defined(OPENSSL_SYS_VOS) || defined(OPENSSL_SYS_UEFI)
 int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes)
 {
@@ -288,8 +291,4 @@ int RAND_egd(const char *path)
 
 # endif
 
-#else /* OPENSSL_NO_EGD */
-# if PEDANTIC
-static void *dummy = &dummy;
-# endif
 #endif
diff --git a/crypto/rsa/rsa_depr.c b/crypto/rsa/rsa_depr.c
index 50b0bb6..18e4065 100644
--- a/crypto/rsa/rsa_depr.c
+++ b/crypto/rsa/rsa_depr.c
@@ -57,19 +57,18 @@
  * "new" versions).
  */
 
-#include <stdio.h>
-#include <time.h>
-#include "internal/cryptlib.h"
 #include <openssl/opensslconf.h>
-#include <openssl/bn.h>
-#include <openssl/rsa.h>
-
 #if OPENSSL_API_COMPAT >= 0x00908000L
-
-static void *dummy = &dummy;
+NON_EMPTY_TRANSLATION_UNIT
 
 #else
 
+# include <stdio.h>
+# include <time.h>
+# include "internal/cryptlib.h"
+# include <openssl/bn.h>
+# include <openssl/rsa.h>
+
 RSA *RSA_generate_key(int bits, unsigned long e_value,
                       void (*callback) (int, int, void *), void *cb_arg)
 {
diff --git a/include/openssl/opensslconf.h.in b/include/openssl/opensslconf.h.in
index 2ba1599..c22209b 100644
--- a/include/openssl/opensslconf.h.in
+++ b/include/openssl/opensslconf.h.in
@@ -72,6 +72,12 @@ EOF
 -}
 
 /*
+ * Sometimes OPENSSSL_NO_xxx ends up with an empty file and some compilers
+ * don't like that.  This will hopefully silence them.
+ */
+#define NON_EMPTY_TRANSLATION_UNIT static void *dummy = &dummy;
+
+/*
  * Applications should use -DOPENSSL_API_COMPAT=<version> to suppress the
  * declarations of functions deprecated in or before <version>. Otherwise, they
  * still won't see them if the library has been built to disable deprecated


More information about the openssl-commits mailing list