Przeglądaj źródła

Ignore warning for redundant decl in openssl/srtp.h

Backports some commits from tor master.
Nick Mathewson 9 lat temu
rodzic
commit
746bb55851
2 zmienionych plików z 26 dodań i 0 usunięć
  1. 4 0
      changes/bug14220
  2. 22 0
      src/common/tortls.c

+ 4 - 0
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.

+ 22 - 0
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>