aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRich Salz <rsalz@akamai.com>2014-08-27 15:28:08 -0400
committerRich Salz <rsalz@akamai.com>2014-08-27 21:35:32 -0400
commit17e80c6bd05de7406a65116f34ed59665607d8d5 (patch)
tree62f3fbd5755cd016cfae2c1f3beffff2365cd40d
parent7b3e11c54466f1da8b707c932e308d345fd61101 (diff)
downloadopenssl-17e80c6bd05de7406a65116f34ed59665607d8d5.tar.gz
RT2308: Add extern "C" { ... } wrapper
Add the wrapper to all public header files (Configure generates one). Don't bother for those that are just lists of #define's that do renaming. Reviewed-by: Tim Hudson <tjh@openssl.org>
-rwxr-xr-xConfigure6
-rw-r--r--crypto/ebcdic.h7
-rw-r--r--crypto/modes/modes.h6
-rw-r--r--crypto/opensslv.h7
-rw-r--r--crypto/ossl_typ.h7
-rw-r--r--crypto/pqueue/pqueue.h6
-rw-r--r--crypto/stack/safestack.h8
7 files changed, 47 insertions, 0 deletions
diff --git a/Configure b/Configure
index b0a36a4e97..1ad5f4c774 100755
--- a/Configure
+++ b/Configure
@@ -1887,6 +1887,9 @@ open(OUT,'>crypto/opensslconf.h.new') || die "unable to create crypto/opensslcon
print OUT "/* opensslconf.h */\n";
print OUT "/* WARNING: Generated automatically from opensslconf.h.in by Configure. */\n\n";
+print OUT "#ifdef __cplusplus\n";
+print OUT "extern \"C\" {\n";
+print OUT "#endif\n";
print OUT "/* OpenSSL was configured with the following options: */\n";
my $openssl_algorithm_defines_trans = $openssl_algorithm_defines;
$openssl_experimental_defines =~ s/^\s*#\s*define\s+OPENSSL_NO_(.*)/#ifndef OPENSSL_EXPERIMENTAL_$1\n# ifndef OPENSSL_NO_$1\n# define OPENSSL_NO_$1\n# endif\n#endif/mg;
@@ -1991,6 +1994,9 @@ while (<IN>)
{ print OUT $_; }
}
close(IN);
+print OUT "#ifdef __cplusplus\n";
+print OUT "}\n";
+print OUT "#endif\n";
close(OUT);
rename("crypto/opensslconf.h","crypto/opensslconf.h.bak") || die "unable to rename crypto/opensslconf.h\n" if -e "crypto/opensslconf.h";
rename("crypto/opensslconf.h.new","crypto/opensslconf.h") || die "unable to rename crypto/opensslconf.h.new\n";
diff --git a/crypto/ebcdic.h b/crypto/ebcdic.h
index 6d65afcf9e..85f3cf7f66 100644
--- a/crypto/ebcdic.h
+++ b/crypto/ebcdic.h
@@ -5,6 +5,10 @@
#include <sys/types.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/* Avoid name clashes with other applications */
#define os_toascii _openssl_os_toascii
#define os_toebcdic _openssl_os_toebcdic
@@ -16,4 +20,7 @@ extern const unsigned char os_toebcdic[256];
void *ebcdic2ascii(void *dest, const void *srce, size_t count);
void *ascii2ebcdic(void *dest, const void *srce, size_t count);
+#ifdef __cplusplus
+}
+#endif
#endif
diff --git a/crypto/modes/modes.h b/crypto/modes/modes.h
index 50dc01852d..a12aca1305 100644
--- a/crypto/modes/modes.h
+++ b/crypto/modes/modes.h
@@ -7,6 +7,9 @@
#include <stddef.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
typedef void (*block128_f)(const unsigned char in[16],
unsigned char out[16],
const void *key);
@@ -147,3 +150,6 @@ size_t CRYPTO_128_wrap_pad(void *key, const unsigned char *icv,
size_t CRYPTO_128_unwrap_pad(void *key, const unsigned char *icv,
unsigned char *out,
const unsigned char *in, size_t inlen, block128_f block);
+#ifdef __cplusplus
+}
+#endif
diff --git a/crypto/opensslv.h b/crypto/opensslv.h
index a23dedc91b..22b87f9d57 100644
--- a/crypto/opensslv.h
+++ b/crypto/opensslv.h
@@ -1,6 +1,10 @@
#ifndef HEADER_OPENSSLV_H
#define HEADER_OPENSSLV_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/* Numeric release version identifier:
* MNNFFPPS: major minor fix patch status
* The status nibble has one of the values 0 for development, 1 to e for betas
@@ -86,4 +90,7 @@
#define SHLIB_VERSION_NUMBER "1.1.0"
+#ifdef __cplusplus
+}
+#endif
#endif /* HEADER_OPENSSLV_H */
diff --git a/crypto/ossl_typ.h b/crypto/ossl_typ.h
index e78a0347db..d04288929e 100644
--- a/crypto/ossl_typ.h
+++ b/crypto/ossl_typ.h
@@ -55,6 +55,10 @@
#ifndef HEADER_OPENSSL_TYPES_H
#define HEADER_OPENSSL_TYPES_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#include <openssl/e_os2.h>
#ifdef NO_ASN1_TYPEDEFS
@@ -202,4 +206,7 @@ typedef struct ocsp_req_ctx_st OCSP_REQ_CTX;
typedef struct ocsp_response_st OCSP_RESPONSE;
typedef struct ocsp_responder_id_st OCSP_RESPID;
+#ifdef __cplusplus
+}
+#endif
#endif /* def HEADER_OPENSSL_TYPES_H */
diff --git a/crypto/pqueue/pqueue.h b/crypto/pqueue/pqueue.h
index 87fc9037c8..26b5348089 100644
--- a/crypto/pqueue/pqueue.h
+++ b/crypto/pqueue/pqueue.h
@@ -64,6 +64,9 @@
#include <stdlib.h>
#include <string.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
typedef struct _pqueue *pqueue;
typedef struct _pitem
@@ -91,4 +94,7 @@ pitem *pqueue_next(piterator *iter);
void pqueue_print(pqueue pq);
int pqueue_size(pqueue pq);
+#ifdef __cplusplus
+}
+#endif
#endif /* ! HEADER_PQUEUE_H */
diff --git a/crypto/stack/safestack.h b/crypto/stack/safestack.h
index 1a89e01252..5327cb89e8 100644
--- a/crypto/stack/safestack.h
+++ b/crypto/stack/safestack.h
@@ -57,6 +57,10 @@
#include <openssl/stack.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#ifndef CHECKED_PTR_OF
#define CHECKED_PTR_OF(type, p) \
((void*) (1 ? p : (type*)0))
@@ -2798,4 +2802,8 @@ DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void)
#define lh_SSL_SESSION_free(lh) LHM_lh_free(SSL_SESSION,lh)
/* End of util/mkstack.pl block, you may now edit :-) */
+
+#ifdef __cplusplus
+}
+#endif
#endif /* !defined HEADER_SAFESTACK_H */