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

Reply via email to