HDF5 1.8.9 release candidate is available for testing

Hello everyone,

A pre-release candidate version of HDF5 1.8.9 is available for testing and can be downloaded at the following link:

http://www.hdfgroup.uiuc.edu/ftp/pub/outgoing/hdf5/hdf5-1.8.9-pre1/

If you have some time to test this pre-release, we would greatly appreciate it. We try to test on a wide variety of platforms and environments but are unable to test everywhere so feedback from the user community is always welcome.

Please note that while the release notes contained in the pre-release are reflective of the changes and additions present in this release, the 'platforms tested' and 'tested configurations' sections have yet to be updated for this version of HDF5.

We plan to release HDF5 1.8.9 in mid-May barring the discovery of any critical issues.

Thank you!

The HDF Group

I'm building on MS Windows, in the MSYS shell, using the mingw.org port of gcc-4.5.2.
I think the last time this approach worked for me was hdf5-1.8.6.

My (gzipped) config.log is attached.

When the 'make' process switches to the 'test' directory:

config.log.gz (28.6 KB)

···

----- Original Message ----- From: "Mike McGreevy" <mamcgree@hdfgroup.org>
To: "HDF Users Discussion List" <hdf-forum@hdfgroup.org>
Sent: Saturday, April 14, 2012 5:15 AM
Subject: [Hdf-forum] HDF5 1.8.9 release candidate is available for testing

Hello everyone,

A pre-release candidate version of HDF5 1.8.9 is available for testing and can be downloaded at the following link:

http://www.hdfgroup.uiuc.edu/ftp/pub/outgoing/hdf5/hdf5-1.8.9-pre1/

If you have some time to test this pre-release, we would greatly appreciate it.

################################
Making all in test
make[1]: Entering directory `/c/comp/hdf5-1.8.9-pre1/test'
  CC h5test.lo
h5test.c: In function 'h5_fixname':
h5test.c:422:21: error: too many arguments to function 'mkdir'
c:\mingw\bin\../lib/gcc/mingw32/4.5.2/../../../../include/io.h:302:37: note: declared here
make[1]: *** [h5test.lo] Error 1
make[1]: Leaving directory `/c/comp/hdf5-1.8.9-pre1/test'
make: *** [all-recursive] Error 1
################################

So, at line 422 of h5test.c, I changed:

if (HDmkdir(fullname, (mode_t)0755) < 0 && errno != EEXIST)
to
if (mkdir(fullname) < 0 && errno != EEXIST)

That allows h5test.c to compile, though I don't know what values mkdir() might return on Windows.

But then, a bit later, I get:

################################
  CC tvlstr.o
  CC tvltypes.o
  CCLD testhdf5.exe
tfile.o:tfile.c:(.text+0x125ef): undefined reference to `sleep'
tfile.o:tfile.c:(.text+0x12a11): undefined reference to `sleep'
../src/.libs/libhdf5.a(H5FDstdio.o):H5FDstdio.c:(.text+0x153b): undefined reference to `ftruncate64'
collect2: ld returned 1 exit status
make[1]: *** [testhdf5.exe] Error 1
make[1]: Leaving directory `/c/comp/hdf5-1.8.9-pre1/test'
make: *** [all-recursive] Error 1
################################

So, in tfile.c, I tried including Windows.h, and replaced both occurrences of HDsleep(2) with Sleep(2000). But that prevents tfile.c from even compiling:

################################
Making all in test
make[1]: Entering directory `/c/comp/hdf5-1.8.9-pre1/test'
  CC tfile.o
tfile.c: In function 'test_obj_count_and_id':
tfile.c:1150:34: error: called object '0' is not a function
tfile.c:1156:34: error: called object '0' is not a function
tfile.c:1164:30: error: called object '0' is not a function
make[1]: *** [tfile.o] Error 1
make[1]: Leaving directory `/c/comp/hdf5-1.8.9-pre1/test'
make: *** [all-recursive] Error 1
################################

At that point, I'm currently stumped.
Plus ... I haven't even looked at what needs to be done wrt the undefined reference to `ftruncate64' .

I subsequently ran 'make -i' and the undefined reference to ftruncate64 recurred continually - though I still end up with a libhdf5_hl.a and a libhdf5.a. (I expect that both of those libraries are quite serviceable, too, as they both built without error.)

Any thoughts or advice ?

Cheers,
Rob

A pre-release candidate version of HDF5 1.8.9 is available for testing and
can be downloaded at the following link:

http://www.hdfgroup.uiuc.edu/ftp/pub/outgoing/hdf5/hdf5-1.8.9-pre1/

If you have some time to test this pre-release, we would greatly appreciate
it.

I see problems like the following during 'make check' on the GNU and
Intel compilers:

testcheck_version.sh Test Log

···

============================
Tests for the H5check_version function.
Note that abort messages may appear due to the expected termination
of the program when it is tested with mis-matched version numnbers.
tcheck_version PASSED
tcheck_version -tM *FAILED*
    Expected exit code (6) differs from actual code (0)
tcheck_version -tm *FAILED*
    Expected exit code (6) differs from actual code (0)
tcheck_version -tr *FAILED*
    Expected exit code (6) differs from actual code (0)

This appears for gcc 4.5.1 on x86_64 Ubuntu 10.04 using mpich2 1.2.1
with a configure line like
CC=mpicc FC=mpif90 ./configure --enable-parallel --enable-fortran
--enable-shared

- Rhys

Rob,
    We have not had success getting MINGW to configure the generated files (pubconf.h) and therefore can not test your issue in house. Please share any suggestions on options to get this working. We have been able to get CMake to build and test (fortran-disabled) the current code base.
I had the latest MINGW / MYSY from nigw.org which used gcc 4.6.1.

Allen

···

----- Original Message -----
From: "Mike McGreevy" <mamcgree@hdfgroup.org>
To: "HDF Users Discussion List" <hdf-forum@hdfgroup.org>
Sent: Saturday, April 14, 2012 5:15 AM
Subject: [Hdf-forum] HDF5 1.8.9 release candidate is available for testing

> Hello everyone,
>
> A pre-release candidate version of HDF5 1.8.9 is available for testing and
> can be downloaded at the following link:
>
> http://www.hdfgroup.uiuc.edu/ftp/pub/outgoing/hdf5/hdf5-1.8.9-pre1/
>
> If you have some time to test this pre-release, we would greatly
> appreciate it.

I'm building on MS Windows, in the MSYS shell, using the mingw.org port of
gcc-4.5.2.
I think the last time this approach worked for me was hdf5-1.8.6.

My (gzipped) config.log is attached.

When the 'make' process switches to the 'test' directory:

################################
Making all in test
make[1]: Entering directory `/c/comp/hdf5-1.8.9-pre1/test'
  CC h5test.lo
h5test.c: In function 'h5_fixname':
h5test.c:422:21: error: too many arguments to function 'mkdir'
c:\mingw\bin\../lib/gcc/mingw32/4.5.2/../../../../include/io.h:302:37: note:
declared here
make[1]: *** [h5test.lo] Error 1
make[1]: Leaving directory `/c/comp/hdf5-1.8.9-pre1/test'
make: *** [all-recursive] Error 1
################################

So, at line 422 of h5test.c, I changed:

if (HDmkdir(fullname, (mode_t)0755) < 0 && errno != EEXIST)
to
if (mkdir(fullname) < 0 && errno != EEXIST)

That allows h5test.c to compile, though I don't know what values mkdir()
might return on Windows.

But then, a bit later, I get:

################################
  CC tvlstr.o
  CC tvltypes.o
  CCLD testhdf5.exe
tfile.o:tfile.c:(.text+0x125ef): undefined reference to `sleep'
tfile.o:tfile.c:(.text+0x12a11): undefined reference to `sleep'
../src/.libs/libhdf5.a(H5FDstdio.o):H5FDstdio.c:(.text+0x153b): undefined
reference to `ftruncate64'
collect2: ld returned 1 exit status
make[1]: *** [testhdf5.exe] Error 1
make[1]: Leaving directory `/c/comp/hdf5-1.8.9-pre1/test'
make: *** [all-recursive] Error 1
################################

So, in tfile.c, I tried including Windows.h, and replaced both occurrences
of HDsleep(2) with Sleep(2000). But that prevents tfile.c from even
compiling:

################################
Making all in test
make[1]: Entering directory `/c/comp/hdf5-1.8.9-pre1/test'
  CC tfile.o
tfile.c: In function 'test_obj_count_and_id':
tfile.c:1150:34: error: called object '0' is not a function
tfile.c:1156:34: error: called object '0' is not a function
tfile.c:1164:30: error: called object '0' is not a function
make[1]: *** [tfile.o] Error 1
make[1]: Leaving directory `/c/comp/hdf5-1.8.9-pre1/test'
make: *** [all-recursive] Error 1
################################

At that point, I'm currently stumped.
Plus ... I haven't even looked at what needs to be done wrt the undefined
reference to `ftruncate64' .

I subsequently ran 'make -i' and the undefined reference to ftruncate64
recurred continually - though I still end up with a libhdf5_hl.a and a
libhdf5.a. (I expect that both of those libraries are quite serviceable,
too, as they both built without error.)

Any thoughts or advice ?

Cheers,
Rob

Although my H5pubconf.h ends up with:

/* Define to 1 if you have the `ftruncate64' function. */
/* #undef H5_HAVE_FTRUNCATE64 */

It also has:

/* Define to 1 if you have the `fseeko64' function. */
#define H5_HAVE_FSEEKO64 1

/* Define to 1 if you have the `lseek64' function. */
#define H5_HAVE_LSEEK64 1

Those 2 entries mean that H5FDdirect.c, H5FDmpiposix.c, and H5FDstdio.c all define something as 'ftruncate64'.
This shouldn't be too hard to fix, when I get the time to check.
I first need to verify that the setting of H5_HAVE_FSEEKO64 and H5_HAVE_LSEEK64 is correct ... it's certainly correct that H5_HAVE_FTRUNCATE64 is *not* set.

On an unrelated issue: Why did my first post in this thread need moderator approval ?
I am subscribed to this list ... though perhaps at a different email address.
Is there a way for me to view my subscription details ?

Cheers,
Rob

···

----- Original Message ----- From: "Sisyphus"

Plus ... I haven't even looked at what needs to be done wrt the undefined
reference to `ftruncate64' .

I'm wondering if you might considering shipping static configuration files that just use #ifdef's to detect that it's running on MinGW for instance? So the dynamic configuration could be left to just those platforms where it's needed, but for MinGW it seems to be sufficient to provide once a config file for each version with some ifdef's, not necessarily needing to run configure each time.

    Werner

···

On Tue, 17 Apr 2012 10:43:22 -0500, Allen D Byrne <byrn@hdfgroup.org> wrote:

Rob,

   We have not had success getting MINGW to configure the generated files (pubconf.h) and therefore can not test your issue in house. Please share any suggestions on options to get this working. We have been able to get CMake to build and test (fortran-disabled) >the current code base.
I had the latest MINGW / MYSY from nigw.org which used gcc 4.6.1.

Allen

----- Original Message -----

From: "Mike McGreevy" <mamcgree@hdfgroup.org>

To: "HDF Users Discussion List" <hdf-forum@hdfgroup.org>

Sent: Saturday, April 14, 2012 5:15 AM

Subject: [Hdf-forum] HDF5 1.8.9 release candidate is available for testing

> Hello everyone,

>

> A pre-release candidate version of HDF5 1.8.9 is available for testing and

> can be downloaded at the following link:

>

> http://www.hdfgroup.uiuc.edu/ftp/pub/outgoing/hdf5/hdf5-1.8.9-pre1/

>

> If you have some time to test this pre-release, we would greatly

> appreciate it.

I'm building on MS Windows, in the MSYS shell, using the mingw.org port of

gcc-4.5.2.

I think the last time this approach worked for me was hdf5-1.8.6.

My (gzipped) config.log is attached.

When the 'make' process switches to the 'test' directory:

################################

Making all in test

make[1]: Entering directory `/c/comp/hdf5-1.8.9-pre1/test'

  CC h5test.lo

h5test.c: In function 'h5_fixname':

h5test.c:422:21: error: too many arguments to function 'mkdir'

c:\mingw\bin\../lib/gcc/mingw32/4.5.2/../../../../include/io.h:302:37: note:

declared here

make[1]: *** [h5test.lo] Error 1

make[1]: Leaving directory `/c/comp/hdf5-1.8.9-pre1/test'

make: *** [all-recursive] Error 1

################################

So, at line 422 of h5test.c, I changed:

if (HDmkdir(fullname, (mode_t)0755) < 0 && errno != EEXIST)

to

if (mkdir(fullname) < 0 && errno != EEXIST)

That allows h5test.c to compile, though I don't know what values mkdir()

might return on Windows.

But then, a bit later, I get:

################################

  CC tvlstr.o

  CC tvltypes.o

  CCLD testhdf5.exe

tfile.o:tfile.c:(.text+0x125ef): undefined reference to `sleep'

tfile.o:tfile.c:(.text+0x12a11): undefined reference to `sleep'

../src/.libs/libhdf5.a(H5FDstdio.o):H5FDstdio.c:(.text+0x153b): undefined

reference to `ftruncate64'

collect2: ld returned 1 exit status

make[1]: *** [testhdf5.exe] Error 1

make[1]: Leaving directory `/c/comp/hdf5-1.8.9-pre1/test'

make: *** [all-recursive] Error 1

################################

So, in tfile.c, I tried including Windows.h, and replaced both occurrences

of HDsleep(2) with Sleep(2000). But that prevents tfile.c from even

compiling:

################################

Making all in test

make[1]: Entering directory `/c/comp/hdf5-1.8.9-pre1/test'

  CC tfile.o

tfile.c: In function 'test_obj_count_and_id':

tfile.c:1150:34: error: called object '0' is not a function

tfile.c:1156:34: error: called object '0' is not a function

tfile.c:1164:30: error: called object '0' is not a function

make[1]: *** [tfile.o] Error 1

make[1]: Leaving directory `/c/comp/hdf5-1.8.9-pre1/test'

make: *** [all-recursive] Error 1

################################

At that point, I'm currently stumped.

Plus ... I haven't even looked at what needs to be done wrt the undefined

reference to `ftruncate64' .

I subsequently ran 'make -i' and the undefined reference to ftruncate64

recurred continually - though I still end up with a libhdf5_hl.a and a

libhdf5.a. (I expect that both of those libraries are quite serviceable,

too, as they both built without error.)

Any thoughts or advice ?

Cheers,

Rob

--
___________________________________________________________________________
Dr. Werner Benger Visualization Research
Laboratory for Creative Arts and Technology (LCAT)
Center for Computation & Technology at Louisiana State University (CCT/LSU)
211 Johnston Hall, Baton Rouge, Louisiana 70803
Tel.: +1 225 578 4809 Fax.: +1 225 578-5362

Those wanting MinGW HDF5 compatibility should really consider using CMake to configure their build of HDF5. It does work much better than the ./configure script.

···

--
Mike Jackson <www.bluequartz.net>

On Apr 17, 2012, at 2:03 PM, Werner Benger wrote:

I'm wondering if you might considering shipping static configuration files that just use #ifdef's to detect that it's running on MinGW for instance? So the dynamic configuration could be left to just those platforms where it's needed, but for MinGW it seems to be sufficient to provide once a config file for each version with some ifdef's, not necessarily needing to run configure each time.

   Werner

On Tue, 17 Apr 2012 10:43:22 -0500, Allen D Byrne <byrn@hdfgroup.org> wrote:

Rob,
    We have not had success getting MINGW to configure the generated files (pubconf.h) and therefore can not test your issue in house. Please share any suggestions on options to get this working. We have been able to get CMake to build and test (fortran-disabled) the current code base.
I had the latest MINGW / MYSY from nigw.org which used gcc 4.6.1.

Allen

>
> ----- Original Message -----
> From: "Mike McGreevy" <mamcgree@hdfgroup.org>
> To: "HDF Users Discussion List" <hdf-forum@hdfgroup.org>
> Sent: Saturday, April 14, 2012 5:15 AM
> Subject: [Hdf-forum] HDF5 1.8.9 release candidate is available for testing
>
>
> > Hello everyone,
> >
> > A pre-release candidate version of HDF5 1.8.9 is available for testing and
> > can be downloaded at the following link:
> >
> > http://www.hdfgroup.uiuc.edu/ftp/pub/outgoing/hdf5/hdf5-1.8.9-pre1/
> >
> > If you have some time to test this pre-release, we would greatly
> > appreciate it.
>
> I'm building on MS Windows, in the MSYS shell, using the mingw.org port of
> gcc-4.5.2.
> I think the last time this approach worked for me was hdf5-1.8.6.
>
> My (gzipped) config.log is attached.
>
> When the 'make' process switches to the 'test' directory:
>
> ################################
> Making all in test
> make[1]: Entering directory `/c/comp/hdf5-1.8.9-pre1/test'
> CC h5test.lo
> h5test.c: In function 'h5_fixname':
> h5test.c:422:21: error: too many arguments to function 'mkdir'
> c:\mingw\bin\../lib/gcc/mingw32/4.5.2/../../../../include/io.h:302:37: note:
> declared here
> make[1]: *** [h5test.lo] Error 1
> make[1]: Leaving directory `/c/comp/hdf5-1.8.9-pre1/test'
> make: *** [all-recursive] Error 1
> ################################
>
> So, at line 422 of h5test.c, I changed:
>
> if (HDmkdir(fullname, (mode_t)0755) < 0 && errno != EEXIST)
> to
> if (mkdir(fullname) < 0 && errno != EEXIST)
>
> That allows h5test.c to compile, though I don't know what values mkdir()
> might return on Windows.
>
> But then, a bit later, I get:
>
> ################################
> CC tvlstr.o
> CC tvltypes.o
> CCLD testhdf5.exe
> tfile.o:tfile.c:(.text+0x125ef): undefined reference to `sleep'
> tfile.o:tfile.c:(.text+0x12a11): undefined reference to `sleep'
> ../src/.libs/libhdf5.a(H5FDstdio.o):H5FDstdio.c:(.text+0x153b): undefined
> reference to `ftruncate64'
> collect2: ld returned 1 exit status
> make[1]: *** [testhdf5.exe] Error 1
> make[1]: Leaving directory `/c/comp/hdf5-1.8.9-pre1/test'
> make: *** [all-recursive] Error 1
> ################################
>
> So, in tfile.c, I tried including Windows.h, and replaced both occurrences
> of HDsleep(2) with Sleep(2000). But that prevents tfile.c from even
> compiling:
>
> ################################
> Making all in test
> make[1]: Entering directory `/c/comp/hdf5-1.8.9-pre1/test'
> CC tfile.o
> tfile.c: In function 'test_obj_count_and_id':
> tfile.c:1150:34: error: called object '0' is not a function
> tfile.c:1156:34: error: called object '0' is not a function
> tfile.c:1164:30: error: called object '0' is not a function
> make[1]: *** [tfile.o] Error 1
> make[1]: Leaving directory `/c/comp/hdf5-1.8.9-pre1/test'
> make: *** [all-recursive] Error 1
> ################################
>
> At that point, I'm currently stumped.
> Plus ... I haven't even looked at what needs to be done wrt the undefined
> reference to `ftruncate64' .
>
> I subsequently ran 'make -i' and the undefined reference to ftruncate64
> recurred continually - though I still end up with a libhdf5_hl.a and a
> libhdf5.a. (I expect that both of those libraries are quite serviceable,
> too, as they both built without error.)
>
> Any thoughts or advice ?
>
> Cheers,
> Rob
>
>

--
___________________________________________________________________________
Dr. Werner Benger Visualization Research
Laboratory for Creative Arts and Technology (LCAT)
Center for Computation & Technology at Louisiana State University (CCT/LSU)
211 Johnston Hall, Baton Rouge, Louisiana 70803
Tel.: +1 225 578 4809 Fax.: +1 225 578-5362
_______________________________________________
Hdf-forum is for HDF software users discussion.
Hdf-forum@hdfgroup.org
http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org

fortesting

Those wanting MinGW HDF5 compatibility should really consider using CMake to configure their build of HDF5. It does work much better than the ./configure script.

Hard to believe that anything could possibly work *worse* :wink:

I do have cmake-2.8.1, but have used it to build plplot only and am not all that familiar with it.

Are there any step-by-step instructions for building HDF5 with cmake and mingw ? ... or is it just a matter of following the usual procedure (whatever that might be).

Do the test scripts pass when using cmake ?

I have now successfully built a 32-bit build and 64-bit build of 1.8.9-pre1 using './configure .....' (by hacking various .c files). By "successfully" I mean that everything built ok, and the libraries are usable for my purposes - but I didn't get far with 'make check' as testhdf5.exe crashes. Perhaps it's just a test that ought to be skipped on Windows ... or perhaps it's something more sinister than that.

The hacks I've made have been fairly simple, but having to make those small amendments to the following files is tedious, nonetheless:

hdf5-1.8.9-pre1\perform\sio_engine.c
hdf5-1.8.9-pre1\src\H5FDdirect.c
hdf5-1.8.9-pre1\src\H5FDmpiposix.c
hdf5-1.8.9-pre1\src\H5FDstdio.c
hdf5-1.8.9-pre1\test\h5test.c
hdf5-1.8.9-pre1\test\links.c
hdf5-1.8.9-pre1\test\links_env.c
hdf5-1.8.9-pre1\test\tfile.c
hdf5-1.8.9-pre1\tools\h5ls\h5ls.c

Obviously, the correct way to fix these problems is to fix the configure process - but, in the meantime, I've no objection to using cmake if the job can easily be done that way.

I'll see if I can make improvements to 'configure' ... but don't hold your breath.

Cheers,
Rob

···

----- Original Message ----- From: "Michael Jackson" <mike.jackson@bluequartz.net>
To: "HDF Users Discussion List" <hdf-forum@hdfgroup.org>
Sent: Wednesday, April 18, 2012 4:57 AM
Subject: Re: [Hdf-forum] HDF5 1.8.9 release candidate is available

If you are using an MSys Shell or MinGW shell it should be something like this:

From a MinGW shell
[hdf5-1.8.9_Source] $ mkdir Build
[hdf5-1.8.9_Source] $ cd Build
[hdf5-1.8.9_Source] $ cmake -G "MinGW Makefiles" ../
[hdf5-1.8.9_Source] $ make <== Or you probably have to use the "minGW-make.exe" instead

From a MSys Shell
[hdf5-1.8.9_Source] $ mkdir Build
[hdf5-1.8.9_Source] $ cd Build
[hdf5-1.8.9_Source] $ cmake -G "MSys Makefiles" ../
[hdf5-1.8.9_Source] $ make

That _should_ get you there. Having said that I have not tried to build under MinGW in a LONG time. The last time I tried it was around version 1.8.0 or so.

···

On Apr 19, 2012, at 5:11 AM, Sisyphus wrote:

----- Original Message ----- From: "Michael Jackson" <mike.jackson@bluequartz.net>
To: "HDF Users Discussion List" <hdf-forum@hdfgroup.org>
Sent: Wednesday, April 18, 2012 4:57 AM
Subject: Re: [Hdf-forum] HDF5 1.8.9 release candidate is available fortesting

Those wanting MinGW HDF5 compatibility should really consider using CMake to configure their build of HDF5. It does work much better than the ./configure script.

Hard to believe that anything could possibly work *worse* :wink:

I do have cmake-2.8.1, but have used it to build plplot only and am not all that familiar with it.

Are there any step-by-step instructions for building HDF5 with cmake and mingw ? ... or is it just a matter of following the usual procedure (whatever that might be).

-----
Mike Jackson