[tor-commits] [tor/release-0.2.5] Ignore warning for redundant decl in openssl/srtp.h

nickm at torproject.org nickm at torproject.org
Mon Mar 9 17:37:06 UTC 2015


commit 746bb55851433a0709e277ea3e1838d0d9b77d9c
Author: Nick Mathewson <nickm at torproject.org>
Date:   Sat Jan 10 16:06:25 2015 -0500

    Ignore warning for redundant decl in openssl/srtp.h
    
    Backports some commits from tor master.
---
 changes/bug14220    |    4 ++++
 src/common/tortls.c |   22 ++++++++++++++++++++++
 2 files changed, 26 insertions(+)

diff --git a/changes/bug14220 b/changes/bug14220
new file mode 100644
index 0000000..51cfa50
--- /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 999d971..d637a8e 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>





More information about the tor-commits mailing list