From 5b13e08ba686de2c4a97d92d4748bdd76c51e91f Mon Sep 17 00:00:00 2001 From: Elena Pourmal Date: Thu, 1 May 2003 15:23:42 -0500 Subject: [svn-r6790] Purpose: Maintenance/code cleanup/fight with Windows Fortran DLLs Description: While strugling with Fortran DLLs on Windows I noticed some missing export definitions that are necessary for exporting correctly data and functions. Solution: Added missing definitions Platforms tested: h5committested; Windows with MSVC++ and Visual Fortran on Windows. Fortran DLLs partially work, only 2 tests fail, but failure doesn't make any sense. To make things worse, most of the C DLL tests start to fail when Fortran is built. I am still investigating... Misc. update: --- fortran/src/H5f90global.f90 | 3 +++ fortran/src/H5f90i.h | 5 +++-- fortran/src/H5f90proto.h | 2 ++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/fortran/src/H5f90global.f90 b/fortran/src/H5f90global.f90 index 2630cca..7aada3e 100644 --- a/fortran/src/H5f90global.f90 +++ b/fortran/src/H5f90global.f90 @@ -283,6 +283,9 @@ ! INTEGER, PARAMETER :: H5FD_FLAGS_LEN = 11 INTEGER H5FD_flags(H5FD_FLAGS_LEN) +!DEC$if defined(BUILD_HDF5_DLL) +!DEC$ ATTRIBUTES DLLEXPORT :: /H5FD_FLAGS/ +!DEC$endif COMMON /H5FD_FLAGS/ H5FD_flags INTEGER :: H5FD_MPIO_INDEPENDENT_F diff --git a/fortran/src/H5f90i.h b/fortran/src/H5f90i.h index e26c855..1c04008 100644 --- a/fortran/src/H5f90i.h +++ b/fortran/src/H5f90i.h @@ -30,6 +30,7 @@ #include #include #include +#include "H5private.h" #if (defined (UNICOS) || (defined (_UNICOS))) @@ -341,11 +342,11 @@ typedef float real_f; #if !defined(FNAME_PRE_UNDERSCORE) && defined(FNAME_POST2_UNDERSCORE) # define FNAME(x) x##__ #endif - +/* # define HDfree(p) (free((void*)p)) # define HDmalloc(s) (malloc((size_t)s)) # define HDstrlen(s) (strlen((const char *)(s))) # define HDmemcpy(dst,src,n) (memcpy((void *)(dst),(const void *)(src),(size_t)(n))) - +*/ #endif /* _H5f90i_H */ diff --git a/fortran/src/H5f90proto.h b/fortran/src/H5f90proto.h index be3e855..ac96ed3 100644 --- a/fortran/src/H5f90proto.h +++ b/fortran/src/H5f90proto.h @@ -78,6 +78,7 @@ H5_DLL int_f nh5fget_access_plist_c (hid_t_f *file_id, hid_t_f *access_id); H5_DLL int_f nh5fget_obj_count_c (hid_t_f *file_id, int_f *obj_type, int_f *obj_count); H5_DLL int_f nh5fget_obj_ids_c (hid_t_f *file_id, int_f *obj_type, int_f *obj_ids); +H5_DLL int_f nh5fflush_c (hid_t_f *obj_id, int_f *scope); /* * Functions from H5Sf.c @@ -1127,6 +1128,7 @@ H5_DLL int_f nh5pset_fapl_multi_c ( hid_t_f *prp_id , int_f *mem_map, hid_t_f *m H5_DLL int_f nh5pset_fapl_multi_sc ( hid_t_f *prp_id , int_f *flag); H5_DLL int_f nh5pset_szip_c ( hid_t_f *prp_id , int_f *options_mask, int_f *pixels_per_block); H5_DLL int_f nh5pall_filters_avail_c ( hid_t_f *prp_id , int_f *status); +H5_DLL int_f nh5pfill_value_defined_c ( hid_t_f *prp_id , int_f *flag); /* * Functions frome H5Rf.c -- cgit v0.12