Hi all, - The OUT is easy to redefine to something like H5_OUT.
- We are using setenv for the first time in 1.10.0 and the Windows equivalent is probably wrapped in a Visual Studio #ifdef instead of a Win32 #ifdef. This should be easy to fix. - SWMR cannot be disabled via configure since the changes are too ingrained into the library for that. fork and waitpid are just used in a few tests. The problem is most likely that the test is not protected by any Windows-specific #ifdefs since it's not in CMake. SWMR is only currently tested on POSIX systems that use the autotools for building since the testing makes heavy use of shell scripts, fork, etc. which are not available on Windows. I'll see if I can #ifdef around the problem. Dana Robinson Software Engineer The HDF Group -----Original Message----- From: Hdf-forum [mailto:[email protected]] On Behalf Of [email protected] Sent: Friday, March 18, 2016 3:14 AM To: [email protected] Subject: Re: [Hdf-forum] Release of HDF5-1.10.0-pre1 -----Original Message----- From: [email protected] Sent: Friday, March 18, 2016 6:43 AM To: [email protected] Subject: [Hdf-forum] Release of HDF5-1.10.0-pre1 Hi, On Windows 7, building in msys shell with mingw-w64 port of gcc-4.9.2 I run: ./configure --disable-shared --enable-static CFLAGS=-DH5_HAVE_WIN32_API CPPFLAGS=-IC:/_64/msys_492/1.0/local/include LDFLAGS=-LC:/_64/msys_492/1.0/local/lib --prefix=C:/_64/msys_492/1.0/local which was a configure command that worked fine for me with the last build (1.8.16-pre2) of hdf5 that I tried. When running 'make', the first stumbling block is this section of code in src/H5Oprivate.h: #ifdef OUT /* Typedef for "internal library" iteration operations */ typedef herr_t (*H5O_lib_operator_t)(H5O_t *oh, H5O_mesg_t *mesg/*in,out*/, unsigned sequence, hbool_t *oh_modified/*out*/, void *operator_data/*in,out*/); #endif /* Typedef for "internal library" iteration operations */ typedef herr_t (*H5O_lib_operator_t)(H5O_t *oh, H5O_mesg_t *mesg/*in,out*/, unsigned sequence, unsigned *oh_modified/*out*/, void *operator_data/*in,out*/); If OUT is defined (as is the case for me) then herr_t gets typedef'ed twice - which is a fatal error. Second stumbling block is: CC external.o CCLD external.exe external.o:external.c:(.text+0x3e4f): undefined reference to `setenv' external.o:external.c:(.text+0x4d08): undefined reference to `setenv' external.o:external.c:(.text+0x65ce): undefined reference to `setenv' external.o:external.c:(.text+0x70a5): undefined reference to `setenv' external.o:external.c:(.text+0x8828): undefined reference to `setenv' external.o:external.c:(.text+0x9585): more undefined references to `setenv' follow collect2.exe: error: ld returned 1 exit status We need to link to libiberty.a to resolve 'setenv'. To achieve this I simply changed each occurrence of "-lz $LIBS" in the configure script to "-lz $LIBS -liberty". Next stumbling block: CC twriteorder.o CCLD twriteorder.exe twriteorder.o:twriteorder.c:(.text+0x8e8): undefined reference to `fork' twriteorder.o:twriteorder.c:(.text+0xa0a): undefined reference to `waitpid' twriteorder.o:twriteorder.c:(.text+0xa37): undefined reference to `WIFEXITED' twriteorder.o:twriteorder.c:(.text+0xa47): undefined reference to `WEXITSTATUS' collect2.exe: error: ld returned 1 exit status I couldn't find any library that resolves 'waitpid'. Do I therefore need to disable SWMR ? How do I disable SWMR ? (I tried adding --disable-SWMR to configure, but it gets reported as an unknown option.) Cheers, Rob _______________________________________________ Hdf-forum is for HDF software users discussion. [email protected] http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org Twitter: https://twitter.com/hdf5 _______________________________________________ Hdf-forum is for HDF software users discussion. [email protected] http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org Twitter: https://twitter.com/hdf5
