Skip to content

Commit

Permalink
RT2308: Add extern "C" { ... } wrapper
Browse files Browse the repository at this point in the history
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 <[email protected]>

Cherry-pick of commit 17e80c6
  • Loading branch information
richsalz committed Aug 28, 2014
1 parent 7f7c05c commit 089f10e
Show file tree
Hide file tree
Showing 7 changed files with 47 additions and 0 deletions.
6 changes: 6 additions & 0 deletions Configure
Original file line number Diff line number Diff line change
Expand Up @@ -1791,6 +1791,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;
Expand Down Expand Up @@ -1895,6 +1898,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";
Expand Down
7 changes: 7 additions & 0 deletions crypto/ebcdic.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
6 changes: 6 additions & 0 deletions crypto/modes/modes.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -141,3 +144,6 @@ size_t CRYPTO_128_wrap(void *key, const unsigned char *iv,
size_t CRYPTO_128_unwrap(void *key, const unsigned char *iv,
unsigned char *out,
const unsigned char *in, size_t inlen, block128_f block);
#ifdef __cplusplus
}
#endif
7 changes: 7 additions & 0 deletions crypto/opensslv.h
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -86,4 +90,7 @@
#define SHLIB_VERSION_NUMBER "1.0.0"


#ifdef __cplusplus
}
#endif
#endif /* HEADER_OPENSSLV_H */
7 changes: 7 additions & 0 deletions crypto/ossl_typ.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -201,4 +205,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 */
6 changes: 6 additions & 0 deletions crypto/pqueue/pqueue.h
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,9 @@
#include <stdlib.h>
#include <string.h>

#ifdef __cplusplus
extern "C" {
#endif
typedef struct _pqueue *pqueue;

typedef struct _pitem
Expand Down Expand Up @@ -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 */
8 changes: 8 additions & 0 deletions crypto/stack/safestack.h
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand Down Expand Up @@ -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 */

0 comments on commit 089f10e

Please sign in to comment.