Commit 2a20c92c4bd022923885252ec9264642533ba809

Werner Lemberg 2015-10-14T15:23:15

[base] Use `FT_' namespace for MD5 functions (#42366). * src/base/ftobjs.c (MD5_*): Define as `FT_MD5_*'. Undefine HAVE_OPENSSL.

diff --git a/ChangeLog b/ChangeLog
index f9615d5..d7143ac 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2015-10-14  Werner Lemberg  <wl@gnu.org>
+
+	[base] Use `FT_' namespace for MD5 functions (#42366).
+
+	* src/base/ftobjs.c (MD5_*): Define as `FT_MD5_*'.
+	Undefine HAVE_OPENSSL.
+
 2015-10-13  Werner Lemberg  <wl@gnu.org>
 
 	[type1] Correctly handle missing MM axis names (#46202).
diff --git a/src/base/ftobjs.c b/src/base/ftobjs.c
index f0c2e77..dd5cb03 100644
--- a/src/base/ftobjs.c
+++ b/src/base/ftobjs.c
@@ -55,7 +55,18 @@
 #pragma warning( disable : 4244 )
 #endif /* _MSC_VER */
 
-  /* it's easiest to include `md5.c' directly */
+  /* It's easiest to include `md5.c' directly.  However, since OpenSSL */
+  /* also provides the same functions, there might be conflicts if     */
+  /* both FreeType and OpenSSL are built as static libraries.  For     */
+  /* this reason, we put the MD5 stuff into the `FT_' namespace.       */
+#define MD5_u32plus  FT_MD5_u32plus
+#define MD5_CTX      FT_MD5_CTX
+#define MD5_Init     FT_MD5_Init
+#define MD5_Update   FT_MD5_Update
+#define MD5_Final    FT_MD5_Final
+
+#undef  HAVE_OPENSSL
+
 #include "md5.c"
 
 #if defined( _MSC_VER )