summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2015-01-10 16:06:25 -0500
committerNick Mathewson <nickm@torproject.org>2015-01-15 12:38:08 -0500
commit746bb55851433a0709e277ea3e1838d0d9b77d9c (patch)
treec05872e19fd83a584b9ca47efbe9fd2c9ce38598
parentf2fb85f9707a37b15d790386e0283f53d640b16b (diff)
downloadtor-746bb55851433a0709e277ea3e1838d0d9b77d9c.tar.gz
tor-746bb55851433a0709e277ea3e1838d0d9b77d9c.zip
Ignore warning for redundant decl in openssl/srtp.h
Backports some commits from tor master.
-rw-r--r--changes/bug142204
-rw-r--r--src/common/tortls.c22
2 files changed, 26 insertions, 0 deletions
diff --git a/changes/bug14220 b/changes/bug14220
new file mode 100644
index 0000000000..51cfa502bc
--- /dev/null
+++ b/changes/bug14220
@@ -0,0 +1,4 @@
+ o Minor bugfixes (compilation):
+ - Build without warnings with the stock OpenSSL srtp.h header,
+ which has a duplicate declaration of SSL_get_selected_srtp_profile().
+ Fixes bug 14220; this is OpenSSL's bug, not ours.
diff --git a/src/common/tortls.c b/src/common/tortls.c
index 999d97131c..d637a8e4d9 100644
--- a/src/common/tortls.c
+++ b/src/common/tortls.c
@@ -33,6 +33,20 @@
#include <ws2tcpip.h>
#endif
#endif
+
+#ifdef __GNUC__
+#define GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__)
+#endif
+
+#if __GNUC__ && GCC_VERSION >= 402
+#if GCC_VERSION >= 406
+#pragma GCC diagnostic push
+#endif
+/* Some versions of OpenSSL declare SSL_get_selected_srtp_profile twice in
+ * srtp.h. Suppress the GCC warning so we can build with -Wredundant-decl. */
+#pragma GCC diagnostic ignored "-Wredundant-decls"
+#endif
+
#include <openssl/ssl.h>
#include <openssl/ssl3.h>
#include <openssl/err.h>
@@ -41,6 +55,14 @@
#include <openssl/bio.h>
#include <openssl/opensslv.h>
+#if __GNUC__ && GCC_VERSION >= 402
+#if GCC_VERSION >= 406
+#pragma GCC diagnostic pop
+#else
+#pragma GCC diagnostic warning "-Wredundant-decls"
+#endif
+#endif
+
#ifdef USE_BUFFEREVENTS
#include <event2/bufferevent_ssl.h>
#include <event2/buffer.h>