th user's definition of H5_USE_16_API. The H5_USE_16_API_DEFAULT is defined through
configure with the flag --with-default-api-version=v16.
Tested with h5committest.
Description: Added configure test to see if pointer alignment restrictions are enforced (as in dereferencing an unaligned pointer causes an error). Added code in H5Tvlen.c to avoid dereferencing unaligned pointers, conditionally compiled based on the configure test. Added test case in dtypes.c which would previously cause such machines to fail.
Tested: kagiso, smirom, linew (h5committest); linew64
Description:
In some of the new H5EA* code, many new C99 features are being used. Most of them are portable to all compilers, but the __func__ keyword in particular isn't supported in Visual Studio on Windows. Instead, Windows defines the __FUNCTION__ keyword, which can be used as a direct substitute.
We now check for the __func__ keyword during configure and define the feature flag H5_HAVE_C99_FUNC. There was previously a check for __FUNCTION__, and the feature flags H5_HAVE_FUNCTION. In H5EApkg.h, we check for the presents of each of these in order to see which to use. If neither are avaiable, fail.
Tested:
h5committest (kagiso, smirom, linew)
Description:
This commit is a major update to the Windows-maintained H5pubconf.h file. This file is statically-distributed because Windows cannot generate it dynamically as other platforms do. Previously, our Windows version contained a minimal subset of the macro definitions required. To update, I've gone through each macro (based on kagiso's output), and tested for the correct value on Windows. This allows us to better target code based on feature flags. It should also be easier to update in the future as changes are made to the configure script.
This commit also contains one small bug fix in h5ls.c. Some Windows-specific code was missing a local variable definition. The bug went unnoticed because Windows didn't define the feature flag correctly.
I've also made changes to the h5vers script. Whenever the version string is incremented (automatically by h5test after a snapshot), the strings in H5pubconf.h will also be updated.
Tested:
VS2005 on WinXP (32- and 64-bit)
VS.NET on WinXP 32-bit
h5vers tested under Cygwin
Description:
As part of our Windows cleanup, we try to remove windows-specific tweaks in the source code. There are many instances where Windows code is introduces via ifdef's. We re-evaluate whether they are still required, and found that many of them are not. Others we change to "feature"-specific code, rather than Windows-specific.
Tested:
VS2005 on WinXP
VS.NET on WinXP
h5committest (kagisopp, smirom, linew)
Description:
Previously, we maintained some source files that are commonly generated dynamically on other systems. Now, we also generate them on Windows as well. We should remove them from the repository so old versions are not accidentally used.
Also, clean up the project files to organize generator programs.
Tested:
VS2005 on WinXP
VS2005 on WinXP x64
VS.NET on WinXP
Description:
Many new path-specific tests have been added via the "links" test. Because Windows' path format is non-standard, we need a special macro defined to handle it specially. Note that 2 tests still fail with this macro defined, but it should be fixed soon.
Tested:
VS2005 on WinXP
Description:
Windows does not accept the buffer size parameter of setvbuf to be less than 2. Previously, we had our fix split between two files, H5private.h and the Windows H5pubconf.h. This was a problem for MinGW, because it generates its own H5private.h. This moves the fix out of H5pubconf.h and into H5private.h.
This shouldn't affect other platforms.
Tested:
MinGW on WinXP
Description:
Changed a macro in H5FDwindows.c from IO_BUF_SIZE to a more specific WINDOWS_MAX_BUF, and moved it to our H5pubconf.h, where users can customize it to their own preference.
This value is needed because of a bug in the Windows _write function, it is unsafe to write buffers larger than 2GB-1 bytes in one write.
Tested:
VS2005 on WinXP.
I've also updated our Windows documentation file to include 64-bit instructions. The process is fairly tedious right now, but we hope to make it more straight-forward when we depreciate 6.0 and re-work our project files.
Tested:
32-bit WinXP: VS6, VS.NET, and VS 2005
64-bit WinXP: VS.NET and VS 2005
Also added a Windows-specific macro, WINDOWS_USE_STDIO, which users can define if they'd like the Windows VFD to use the buffered low-level I/O functions. This is instead of splitting our Windows driver into two separate drivers. By default, this macro is undefined.
Tested:
VS6 on WinXP
Tested platform:
Kagiso only since it is only a comment block change. If it works in one
machine, it should work in all, I hope. Still need to check the parallel
build on copper.
portable issue on windows
Description:
setvbuf on visual studio 2005 needs the size to be greater or equal to 2.
<description of setvbuf from msdn library>
Buffer size in bytes. Allowable range: 2 <= size <=
INT_MAX (2147483647). Internally, the value supplied
for size is rounded down to the nearest multiple of 2.
h5import used linebuffer option of setvbuf for stderr and stdout and the size is
0 by default. This causes core dump with visual 2005 on windows 64-bit.
Solution:
1. Use HDsetvbuf inside h5import.c,
2. Define HDsetvbuf inside windows H5pubconf.h for windows to work around
the core dump of h5import test. This is probably a bug inside visual studio 2005.
Platforms tested:
h5commit(shanti is down)
VS 6.0 on windows XP
VS 8.0 on windows XP-64bit
Misc. update:
new features
Description:
add support for compiling the library and testphdf5 in Windows
Solution:
Platforms tested:
Linux
AIX
Solaris
Windows VC6
Misc. update:
Maintenance on Windows
Description:
Changes made for windows due to the change of h5detect.c
Solution:
Platforms tested:
MSVS 6.0, VS .Net, Intel 8.0 on Windows XP
Misc. update:
Maintenance on Windows
Description:
Add definition for int <-> float conversion exception
Solution:
Platforms tested:
MSVS 6.0 on Windows XP
Misc. update:
Add new macro to remove data conversion errors on visual c++ .Net on windows XP
Description:
Solution:
Platforms tested:
Visual C++ .Net 2003 on windows XP
Misc. update:
Code cleanup
Description:
Switch name & logic from H5_LLONG_TO_FP_CAST_BROKEN to
H5_LLONG_TO_FP_CAST_WORKS, to better match the rest of the library.
Platforms tested:
FreeBSD 4.11 (sleipnir)
Too minor to require h5committest
One dtransform test failed with Intel 8.1 C++ compiler.
Turned off the test with assertion of a macro.
Description:
Solution:
Platforms tested:
Intel C++ 8.1 on .Net 2003.
Misc. update:
Supper 12-byte long double for intel compiler.
Description:
Long double is 12-byte at intel compiler, currently we always set long double to 8-byte.
Change this for intel compiler. This is not the compelete change. H5Tinit.c needs also to be changed to support this.
Solution:
Platforms tested:
Not test yet, since it won't affect other compilers except intel, will test soon.
Misc. update:
long_long to long_long data transform doesn't work with intel compiler on windows.
Description:
Turned off this test.
Solution:
Need corresponding source code changes, will talk with Leon.
Platforms tested:
VS. Net 2003 + Intel 8.1
Misc. update:
FOrtran is using macro FC_FUNC or H5_FC_FUNC
Has to update windows H5pubconf.h to be consistent with the
change.
Description:
Solution:
Platforms tested:
VS 6.0 on windows
Misc. update: