From b7e35aef0e7f4e378e98c18f2c787bd9eaa8a0cd Mon Sep 17 00:00:00 2001 From: Quincey Koziol Date: Mon, 23 Nov 2009 16:34:51 -0500 Subject: [svn-r17924] Description: Add detection for POSIX lstat() routine to configure script (mostly for non-UNIX/Linux machines) and add macro wrapper for it. Alphabetatize the system/library calls we test for, to make them easier to read. Removed the sigaction() detection & macro wrappers, since it's not used by the distribution currently. Tested on: FreeBSD/32 6.3 (duty) in debug mode FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x, w/C++ & FORTRAN, w/threadsafe, in debug mode Linux/64-amd64 2.6 (smirom) w/Intel compilers, w/default API=1.6.x, w/C++ & FORTRAN, in production mode Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN, w/szip filter, in production mode Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN, in production mode Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in debug mode Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode Mac OS X/32 10.6.2 (amazon) in debug mode Mac OS X/32 10.6.2 (amazon) w/C++ & FORTRAN, w/threadsafe, in production mode --- configure | 21 +++++---------------- configure.in | 10 ++++------ perform/sio_standalone.h | 5 ++++- src/H5config.h.in | 6 +++--- src/H5private.h | 11 +++++++---- vms/src/h5pubconf.h | 6 +++--- windows/src/H5pubconf.h | 6 +++--- 7 files changed, 29 insertions(+), 36 deletions(-) diff --git a/configure b/configure index d8d9ac7..2e215bf 100755 --- a/configure +++ b/configure @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.in Id: configure.in 17742 2009-10-25 06:45:59Z hdftest . +# From configure.in Id: configure.in 17902 2009-11-17 15:27:25Z hdftest . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.64 for HDF5 1.9.52. # @@ -24740,7 +24740,7 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -for ac_func in alarm fork frexpf frexpl gethostname getpwuid getrusage +for ac_func in alarm BSDgettimeofday fork frexpf frexpl do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -24753,7 +24753,7 @@ _ACEOF fi done -for ac_func in BSDgettimeofday siglongjmp longjmp setsysinfo sigaction +for ac_func in gethostname getpwuid getrusage longjmp lstat do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -24766,7 +24766,7 @@ _ACEOF fi done -for ac_func in signal snprintf vasprintf strdup system waitpid +for ac_func in rand_r random setsysinfo siglongjmp signal do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -24779,7 +24779,7 @@ _ACEOF fi done -for ac_func in rand_r random srandom +for ac_func in snprintf srandom strdup system tmpfile vasprintf waitpid do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -24792,17 +24792,6 @@ _ACEOF fi done -for ac_func in tmpfile -do : - ac_fn_c_check_func "$LINENO" "tmpfile" "ac_cv_func_tmpfile" -if test "x$ac_cv_func_tmpfile" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_TMPFILE 1 -_ACEOF - -fi -done - for ac_func in vsnprintf do : diff --git a/configure.in b/configure.in index 28f919d..0d4963b 100644 --- a/configure.in +++ b/configure.in @@ -1974,13 +1974,11 @@ AC_MSG_RESULT([no])) dnl ---------------------------------------------------------------------- dnl Check for functions. -dnl tmpfile needed by h5pdiff. dnl -AC_CHECK_FUNCS(alarm fork frexpf frexpl gethostname getpwuid getrusage) -AC_CHECK_FUNCS(BSDgettimeofday siglongjmp longjmp setsysinfo sigaction) -AC_CHECK_FUNCS(signal snprintf vasprintf strdup system waitpid) -AC_CHECK_FUNCS(rand_r random srandom) -AC_CHECK_FUNCS(tmpfile) +AC_CHECK_FUNCS(alarm BSDgettimeofday fork frexpf frexpl) +AC_CHECK_FUNCS(gethostname getpwuid getrusage longjmp lstat) +AC_CHECK_FUNCS(rand_r random setsysinfo siglongjmp signal) +AC_CHECK_FUNCS(snprintf srandom strdup system tmpfile vasprintf waitpid) dnl Check for vsnprintf() separately, so we can detect situations where it dnl doesn't return the correct size for formatted strings that are too large diff --git a/perform/sio_standalone.h b/perform/sio_standalone.h index 9faaac1..b31d4846 100644 --- a/perform/sio_standalone.h +++ b/perform/sio_standalone.h @@ -177,22 +177,26 @@ H5_DLL int HDfprintf (FILE *stream, const char *fmt, ...); #ifdef _WIN32 #ifdef __MWERKS__ #define HDfstat(F,B) fstat(F,B) + #define HDlstat(S,B) lstat(S,B) #define HDstat(S,B) stat(S,B) typedef struct stat h5_stat_t; typedef off_t h5_stat_size_t; #else /*MSVC*/ #define HDfstat(F,B) _fstati64(F,B) + #define HDlstat(S,B) _lstati64(S,B) #define HDstat(S,B) _stati64(S,B) typedef struct _stati64 h5_stat_t; typedef __int64 h5_stat_size_t; #endif #elif H5_SIZEOF_OFF_T!=8 && H5_SIZEOF_OFF64_T==8 && defined(H5_HAVE_STAT64) #define HDfstat(F,B) fstat64(F,B) + #define HDlstat(S,B) lstat64(S,B) #define HDstat(S,B) stat64(S,B) typedef struct stat64 h5_stat_t; typedef off64_t h5_stat_size_t; #else #define HDfstat(F,B) fstat(F,B) + #define HDlstat(S,B) lstat(S,B) #define HDstat(S,B) stat(S,B) typedef struct stat h5_stat_t; typedef off_t h5_stat_size_t; @@ -349,7 +353,6 @@ int HDremove_all(const char * fname); #else #define HDsetvbuf(F,S,M,Z) setvbuf(F,S,M,(Z>1?Z:2)) #endif -#define HDsigaction(N,A) sigaction(N,A) #define HDsigaddset(S,N) sigaddset(S,N) #define HDsigdelset(S,N) sigdelset(S,N) #define HDsigemptyset(S) sigemptyset(S) diff --git a/src/H5config.h.in b/src/H5config.h.in index bb03fc7..94601b8 100644 --- a/src/H5config.h.in +++ b/src/H5config.h.in @@ -220,6 +220,9 @@ /* Define to 1 if you have the `lseek64' function. */ #undef HAVE_LSEEK64 +/* Define to 1 if you have the `lstat' function. */ +#undef HAVE_LSTAT + /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H @@ -256,9 +259,6 @@ /* Define to 1 if you have the `setsysinfo' function. */ #undef HAVE_SETSYSINFO -/* Define to 1 if you have the `sigaction' function. */ -#undef HAVE_SIGACTION - /* Define to 1 if you have the `siglongjmp' function. */ #undef HAVE_SIGLONGJMP diff --git a/src/H5private.h b/src/H5private.h index 65800fc..ada5321 100644 --- a/src/H5private.h +++ b/src/H5private.h @@ -730,11 +730,14 @@ H5_DLL int HDfprintf (FILE *stream, const char *fmt, ...); * For Unix, if off_t is not 64bit big, try use the pseudo-standard * xxx64 versions if available. */ -#if !defined(HDfstat) || !defined(HDstat) +#if !defined(HDfstat) || !defined(HDstat) || !defined(HDlstat) #if H5_SIZEOF_OFF_T!=8 && H5_SIZEOF_OFF64_T==8 && defined(H5_HAVE_STAT64) #ifndef HDfstat #define HDfstat(F,B) fstat64(F,B) #endif /* HDfstat */ + #ifndef HDlstat + #define HDlstat(S,B) lstat64(S,B) + #endif /* HDlstat */ #ifndef HDstat #define HDstat(S,B) stat64(S,B) #endif /* HDstat */ @@ -745,6 +748,9 @@ H5_DLL int HDfprintf (FILE *stream, const char *fmt, ...); #ifndef HDfstat #define HDfstat(F,B) fstat(F,B) #endif /* HDfstat */ + #ifndef HDlstat + #define HDlstat(S,B) lstat(S,B) + #endif /* HDlstat */ #ifndef HDstat #define HDstat(S,B) stat(S,B) #endif /* HDstat */ @@ -1080,9 +1086,6 @@ H5_DLL int HDfprintf (FILE *stream, const char *fmt, ...); #ifndef HDsetvbuf #define HDsetvbuf(F,S,M,Z) setvbuf(F,S,M,Z) #endif /* HDsetvbuf */ -#ifndef HDsigaction - #define HDsigaction(N,A) sigaction(N,A) -#endif /* HDsigaction */ #ifndef HDsigaddset #define HDsigaddset(S,N) sigaddset(S,N) #endif /* HDsigaddset */ diff --git a/vms/src/h5pubconf.h b/vms/src/h5pubconf.h index 9c995db..2415f77 100644 --- a/vms/src/h5pubconf.h +++ b/vms/src/h5pubconf.h @@ -229,6 +229,9 @@ /* Define to 1 if you have the `lseek64' function. */ /* #define H5_HAVE_LSEEK64 1 */ +/* Define to 1 if you have the `lstat' function. */ +/* #define H5_HAVE_LSTAT 1 */ + /* Define to 1 if you have the header file. */ #define H5_HAVE_MEMORY_H 1 @@ -265,9 +268,6 @@ /* Define to 1 if you have the `setsysinfo' function. */ /* #undef H5_HAVE_SETSYSINFO */ -/* Define to 1 if you have the `sigaction' function. */ -#define H5_HAVE_SIGACTION 1 - /* Define to 1 if you have the `siglongjmp' function. */ #define H5_HAVE_SIGLONGJMP 1 diff --git a/windows/src/H5pubconf.h b/windows/src/H5pubconf.h index 3a7bb71..eac9df3 100755 --- a/windows/src/H5pubconf.h +++ b/windows/src/H5pubconf.h @@ -231,6 +231,9 @@ /* Define to 1 if you have the `lseek64' function. */ /* #undef H5_HAVE_LSEEK64 */ +/* Define to 1 if you have the `lstat' function. */ +/* #undef H5_HAVE_LSTAT */ + /* Define to 1 if you have the header file. */ #define H5_HAVE_MEMORY_H 1 @@ -267,9 +270,6 @@ /* Define to 1 if you have the `setsysinfo' function. */ /* #undef H5_HAVE_SETSYSINFO */ -/* Define to 1 if you have the `sigaction' function. */ -/* #undef H5_HAVE_SIGACTION */ - /* Define to 1 if you have the `siglongjmp' function. */ /* #undef H5_HAVE_SIGLONGJMP */ -- cgit v0.12