summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDana Robinson <derobins@hdfgroup.org>2014-06-13 16:10:25 (GMT)
committerDana Robinson <derobins@hdfgroup.org>2014-06-13 16:10:25 (GMT)
commit1ef0d8e245a965666a0cb8bc6ecef55ccb8184c3 (patch)
treee27e2f39abcf411bec0b41eaedd78bc76979875b
parent79c3535fe30c93a84ea5372279bff1778a85e64d (diff)
downloadhdf5-1ef0d8e245a965666a0cb8bc6ecef55ccb8184c3.zip
hdf5-1ef0d8e245a965666a0cb8bc6ecef55ccb8184c3.tar.gz
hdf5-1ef0d8e245a965666a0cb8bc6ecef55ccb8184c3.tar.bz2
[svn-r25276] Merge of r25274 from trunk.
Eliminates DllMain from static builds (an oversight in the implementation). Fixes HDFFV-8837. Tested on 64-bit Windows 7 with Visual Studio 2012.
-rw-r--r--release_docs/RELEASE.txt10
-rw-r--r--src/H5.c5
2 files changed, 12 insertions, 3 deletions
diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt
index 046e6a1..4e38354 100644
--- a/release_docs/RELEASE.txt
+++ b/release_docs/RELEASE.txt
@@ -115,7 +115,15 @@ Bug Fixes since HDF5-1.8.13
Library
-------
- -
+ - Removal of DllMain() from static Windows builds.
+ A DllMain() function was added in HDF5 1.8.13 in order to handle win32 thread
+ cleanup. The preprocessor #ifdefs around the DllMain function allowed it
+ to be compiled when the static library is built, which is incorrect behavior
+ and can cause linkage problems in clients.
+ The fix was to change the preprocessor #ifdefs to exclude compiling DllMain()
+ in static builds. Our DllMain function is now only compiled when the shared,
+ thread-safe library is built on Windows.
+ (DER - 2014/06/13 HDFFV-8837)
Parallel Library
----------------
diff --git a/src/H5.c b/src/H5.c
index 1515f96..84dc990 100644
--- a/src/H5.c
+++ b/src/H5.c
@@ -840,7 +840,8 @@ H5free_memory(void *mem)
} /* end H5free_memory() */
-#ifdef H5_HAVE_WIN32_API
+#if defined(H5_HAVE_THREADSAFE) && defined(H5_BUILT_AS_DYNAMIC_LIB) \
+ && defined(H5_HAVE_WIN32_API) && defined(H5_HAVE_WIN_THREADS)
/*-------------------------------------------------------------------------
* Function: DllMain
*
@@ -895,4 +896,4 @@ DllMain(_In_ HINSTANCE hinstDLL, _In_ DWORD fdwReason, _In_ LPVOID lpvReserved)
return fOkay;
}
-#endif /* H5_HAVE_WIN32_API */
+#endif /* H5_HAVE_WIN32_API && H5_BUILT_AS_DYNAMIC_LIB && H5_HAVE_WIN_THREADS && H5_HAVE_THREADSAFE*/