From 962faf31acc950439a80c4cd5fd82771f2c5de06 Mon Sep 17 00:00:00 2001 From: Dana Robinson Date: Tue, 29 Mar 2016 02:15:11 -0500 Subject: [svn-r29589] Merge of 29011 & 29019 from trunk. LFS changes to configure. Fixes HDFFV-9626. Tested on: jam --- configure | 128 +---------------------------------------------- configure.ac | 81 ++++++++++++------------------ release_docs/RELEASE.txt | 15 +++++- src/H5FDstdio.c | 21 +++----- src/H5config.h.in | 27 ---------- src/H5private.h | 72 ++++++++------------------ 6 files changed, 75 insertions(+), 269 deletions(-) diff --git a/configure b/configure index fcfe9ca..23c1e9c 100755 --- a/configure +++ b/configure @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.ac Id: configure.ac 29060 2016-02-07 21:07:32Z hdftest . +# From configure.ac Id: configure.ac 29174 2016-02-21 21:24:42Z hdftest . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for HDF5 1.8.17-snap13. # @@ -22268,10 +22268,6 @@ fi ## case "$host_cpu-$host_vendor-$host_os" in *linux*) - ## Make available various LFS-related routines using the following - ## _LARGEFILE*_SOURCE macros. - AM_CPPFLAGS="-D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE $AM_CPPFLAGS" - ## Add POSIX support on Linux systems, so defines ## __USE_POSIX, which is required to get the prototype for fdopen ## defined correctly in . @@ -22306,95 +22302,6 @@ esac CPPFLAGS="$H5_CPPFLAGS $AM_CPPFLAGS $CPPFLAGS" CFLAGS="$H5_CFLAGS $AM_CFLAGS $CFLAGS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ -off64_t n = 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - for ac_func in lseek64 fseeko64 ftello64 ftruncate64 -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" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: skipping test for lseek64(), fseeko64 , ftello64, ftruncate64() because off64_t is not defined" >&5 -$as_echo "skipping test for lseek64(), fseeko64 , ftello64, ftruncate64() because off64_t is not defined" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -for ac_func in fseeko ftello -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" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#ifdef FC_DUMMY_MAIN -#ifndef FC_DUMMY_MAIN_EQ_F77 -# ifdef __cplusplus - extern "C" -# endif - int FC_DUMMY_MAIN() { return 1; } -#endif -#endif -int -main () -{ -struct stat64 sb; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - for ac_func in stat64 fstat64 -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" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: skipping test for stat64() and fstat64()" >&5 -$as_echo "skipping test for stat64() and fstat64()" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ## ---------------------------------------------------------------------- ## Data types and their sizes. ## @@ -24075,39 +23982,6 @@ cat >>confdefs.h <<_ACEOF _ACEOF -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of off64_t" >&5 -$as_echo_n "checking size of off64_t... " >&6; } -if ${ac_cv_sizeof_off64_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (off64_t))" "ac_cv_sizeof_off64_t" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_off64_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (off64_t) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_off64_t=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_off64_t" >&5 -$as_echo "$ac_cv_sizeof_off64_t" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_OFF64_T $ac_cv_sizeof_off64_t -_ACEOF - - ## Checkpoint the cache cat >confcache <<\_ACEOF diff --git a/configure.ac b/configure.ac index 3db75af..f9c64ea 100644 --- a/configure.ac +++ b/configure.ac @@ -911,10 +911,6 @@ fi ## case "$host_cpu-$host_vendor-$host_os" in *linux*) - ## Make available various LFS-related routines using the following - ## _LARGEFILE*_SOURCE macros. - AM_CPPFLAGS="-D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE $AM_CPPFLAGS" - ## Add POSIX support on Linux systems, so defines ## __USE_POSIX, which is required to get the prototype for fdopen ## defined correctly in . @@ -949,18 +945,6 @@ esac CPPFLAGS="$H5_CPPFLAGS $AM_CPPFLAGS $CPPFLAGS" CFLAGS="$H5_CFLAGS $AM_CFLAGS $CFLAGS" -AC_TRY_COMPILE([#include ], - [off64_t n = 0;], - [AC_CHECK_FUNCS([lseek64 fseeko64 ftello64 ftruncate64])], - [AC_MSG_RESULT([skipping test for lseek64(), fseeko64 , ftello64, ftruncate64() because off64_t is not defined])]) -AC_CHECK_FUNCS([fseeko ftello]) -AC_TRY_COMPILE([ -#include -#include ], -[struct stat64 sb;], -[AC_CHECK_FUNCS([stat64 fstat64])], -[AC_MSG_RESULT([skipping test for stat64() and fstat64()])]) - ## ---------------------------------------------------------------------- ## Data types and their sizes. ## @@ -1000,43 +984,42 @@ if test "X$C9x" = "Xyes"; then EOF fi -AC_CHECK_SIZEOF( [int8_t], [1]) -AC_CHECK_SIZEOF( [uint8_t], [1]) -AC_CHECK_SIZEOF( [int_least8_t], [1]) -AC_CHECK_SIZEOF( [uint_least8_t], [1]) -AC_CHECK_SIZEOF( [int_fast8_t], [1]) -AC_CHECK_SIZEOF( [uint_fast8_t], [1]) - -AC_CHECK_SIZEOF( [int16_t], [2]) -AC_CHECK_SIZEOF( [uint16_t], [2]) -AC_CHECK_SIZEOF( [int_least16_t], [2]) -AC_CHECK_SIZEOF([uint_least16_t], [2]) -AC_CHECK_SIZEOF( [int_fast16_t], [2]) -AC_CHECK_SIZEOF( [uint_fast16_t], [2]) - -AC_CHECK_SIZEOF( [int32_t], [4]) -AC_CHECK_SIZEOF( [uint32_t], [4]) -AC_CHECK_SIZEOF( [int_least32_t], [4]) -AC_CHECK_SIZEOF([uint_least32_t], [4]) -AC_CHECK_SIZEOF( [int_fast32_t], [4]) -AC_CHECK_SIZEOF( [uint_fast32_t], [4]) - -AC_CHECK_SIZEOF( [int64_t], [8]) -AC_CHECK_SIZEOF( [uint64_t], [8]) -AC_CHECK_SIZEOF( [int_least64_t], [8]) -AC_CHECK_SIZEOF([uint_least64_t], [8]) -AC_CHECK_SIZEOF( [int_fast64_t], [8]) -AC_CHECK_SIZEOF( [uint_fast64_t], [8]) - -AC_CHECK_SIZEOF([size_t], [4]) -AC_CHECK_SIZEOF([ssize_t], [4]) -AC_CHECK_SIZEOF([ptrdiff_t], [4]) +AC_CHECK_SIZEOF( [int8_t]) +AC_CHECK_SIZEOF( [uint8_t]) +AC_CHECK_SIZEOF( [int_least8_t]) +AC_CHECK_SIZEOF( [uint_least8_t]) +AC_CHECK_SIZEOF( [int_fast8_t]) +AC_CHECK_SIZEOF( [uint_fast8_t]) + +AC_CHECK_SIZEOF( [int16_t]) +AC_CHECK_SIZEOF( [uint16_t]) +AC_CHECK_SIZEOF( [int_least16_t]) +AC_CHECK_SIZEOF([uint_least16_t]) +AC_CHECK_SIZEOF( [int_fast16_t]) +AC_CHECK_SIZEOF( [uint_fast16_t]) + +AC_CHECK_SIZEOF( [int32_t]) +AC_CHECK_SIZEOF( [uint32_t]) +AC_CHECK_SIZEOF( [int_least32_t]) +AC_CHECK_SIZEOF([uint_least32_t]) +AC_CHECK_SIZEOF( [int_fast32_t]) +AC_CHECK_SIZEOF( [uint_fast32_t]) + +AC_CHECK_SIZEOF( [int64_t]) +AC_CHECK_SIZEOF( [uint64_t]) +AC_CHECK_SIZEOF( [int_least64_t]) +AC_CHECK_SIZEOF([uint_least64_t]) +AC_CHECK_SIZEOF( [int_fast64_t]) +AC_CHECK_SIZEOF( [uint_fast64_t]) + +AC_CHECK_SIZEOF([size_t]) +AC_CHECK_SIZEOF([ssize_t]) +AC_CHECK_SIZEOF([ptrdiff_t]) cat >>confdefs.h <<\EOF #include /*for off_t definition*/ EOF -AC_CHECK_SIZEOF([off_t], [4]) -AC_CHECK_SIZEOF([off64_t], [8]) +AC_CHECK_SIZEOF([off_t]) ## Checkpoint the cache AC_CACHE_SAVE diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt index 1b44917..a768e38 100644 --- a/release_docs/RELEASE.txt +++ b/release_docs/RELEASE.txt @@ -66,7 +66,20 @@ New Features --enable/disable-verbose to display all cmake process output. (AKC, 2015/11/16, HDFFV-8932 and DAILYTEST-195) - - CMake minimum is now 3.1.0. (ADB 2015/11/14) + - CMake minimum is now 3.1.0. (ADB 2015/11/14) + + - Large file system (LFS) support has changed in the autotools + + * We assume that fseeko and ftello exist. + + * The *64 I/O functions and types are no longer explicitly used. + We now rely on a mapping provided by _FILE_OFFSET_BITS (or its + equivalent). + + * _LARGEFILE(64)_SOURCE is no longer exposed via AM_CPPFLAGS. + + (DER, 2016/03/29, HDFFV-9626) + Library ------- diff --git a/src/H5FDstdio.c b/src/H5FDstdio.c index d63e5f1..8efaf43 100644 --- a/src/H5FDstdio.c +++ b/src/H5FDstdio.c @@ -131,23 +131,14 @@ typedef struct H5FD_stdio_t { #endif /* H5_HAVE_MINGW */ #endif /* H5_HAVE_WIN32_API */ -/* Use file_xxx to indicate these are local macros, avoiding confusing - * with the global HD_xxx macros. - * Assume fseeko, which is POSIX standard, is always supported; - * but prefer to use fseeko64 if supported. +/* If these functions weren't re-defined for Windows, give them + * more platform-independent names. */ #ifndef file_fseek - #ifdef H5_HAVE_FSEEKO64 - #define file_fseek fseeko64 - #define file_offset_t off64_t - #define file_ftruncate ftruncate64 - #define file_ftell ftello64 - #else - #define file_fseek fseeko - #define file_offset_t off_t - #define file_ftruncate ftruncate - #define file_ftell ftello - #endif /* H5_HAVE_FSEEKO64 */ + #define file_fseek fseeko + #define file_offset_t off_t + #define file_ftruncate ftruncate + #define file_ftell ftello #endif /* file_fseek */ /* These macros check for overflow of various quantities. These macros diff --git a/src/H5config.h.in b/src/H5config.h.in index 6075f3f..0ed6ae8 100644 --- a/src/H5config.h.in +++ b/src/H5config.h.in @@ -91,24 +91,6 @@ /* Define to 1 if you have the `frexpl' function. */ #undef HAVE_FREXPL -/* Define to 1 if you have the `fseeko' function. */ -#undef HAVE_FSEEKO - -/* Define to 1 if you have the `fseeko64' function. */ -#undef HAVE_FSEEKO64 - -/* Define to 1 if you have the `fstat64' function. */ -#undef HAVE_FSTAT64 - -/* Define to 1 if you have the `ftello' function. */ -#undef HAVE_FTELLO - -/* Define to 1 if you have the `ftello64' function. */ -#undef HAVE_FTELLO64 - -/* Define to 1 if you have the `ftruncate64' function. */ -#undef HAVE_FTRUNCATE64 - /* Define if the compiler understands the __FUNCTION__ keyword */ #undef HAVE_FUNCTION @@ -173,9 +155,6 @@ /* Define to 1 if you have the `longjmp' function. */ #undef HAVE_LONGJMP -/* Define to 1 if you have the `lseek64' function. */ -#undef HAVE_LSEEK64 - /* Define to 1 if you have the `lstat' function. */ #undef HAVE_LSTAT @@ -236,9 +215,6 @@ /* Define to 1 if you have the `srandom' function. */ #undef HAVE_SRANDOM -/* Define to 1 if you have the `stat64' function. */ -#undef HAVE_STAT64 - /* Define if `struct stat' has the `st_blocks' field */ #undef HAVE_STAT_ST_BLOCKS @@ -460,9 +436,6 @@ /* The size of `long long', as computed by sizeof. */ #undef SIZEOF_LONG_LONG -/* The size of `off64_t', as computed by sizeof. */ -#undef SIZEOF_OFF64_T - /* The size of `off_t', as computed by sizeof. */ #undef SIZEOF_OFF_T diff --git a/src/H5private.h b/src/H5private.h index f554476..161f35a 100644 --- a/src/H5private.h +++ b/src/H5private.h @@ -800,58 +800,37 @@ H5_DLL int HDfprintf (FILE *stream, const char *fmt, ...); #endif /* HDfrexpl */ /* fscanf() variable arguments */ #ifndef HDfseek - #ifdef H5_HAVE_FSEEKO - #define HDfseek(F,O,W) fseeko(F,O,W) - #else /* H5_HAVE_FSEEKO */ - #define HDfseek(F,O,W) fseek(F,O,W) - #endif /* H5_HAVE_FSEEKO */ + #define HDfseek(F,O,W) fseeko(F,O,W) #endif /* HDfseek */ #ifndef HDfsetpos #define HDfsetpos(F,P) fsetpos(F,P) #endif /* HDfsetpos */ -/* definitions related to the file stat utilities. - * For Unix, if off_t is not 64bit big, try use the pseudo-standard - * xxx64 versions if available. +#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 */ + +#ifndef H5_HAVE_WIN32_API +/* These definitions differ in Windows and are defined in + * H5win32defs for that platform. */ -#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 */ - typedef struct stat64 h5_stat_t; - typedef off64_t h5_stat_size_t; - #define H5_SIZEOF_H5_STAT_SIZE_T H5_SIZEOF_OFF64_T - #else /* H5_SIZEOF_OFF_T!=8 && ... */ - #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 */ - typedef struct stat h5_stat_t; - typedef off_t h5_stat_size_t; - #define H5_SIZEOF_H5_STAT_SIZE_T H5_SIZEOF_OFF_T - #endif /* H5_SIZEOF_OFF_T!=8 && ... */ -#endif /* !defined(HDfstat) || !defined(HDstat) */ +typedef struct stat h5_stat_t; +typedef off_t h5_stat_size_t; +#define HDoff_t off_t +#endif /* H5_HAVE_WIN32_API */ + +#define H5_SIZEOF_H5_STAT_SIZE_T H5_SIZEOF_OFF_T #ifndef HDftell - #define HDftell(F) ftell(F) + #define HDftell(F) ftello(F) #endif /* HDftell */ #ifndef HDftruncate - #ifdef H5_HAVE_FTRUNCATE64 - #define HDftruncate(F,L) ftruncate64(F,L) - #else #define HDftruncate(F,L) ftruncate(F,L) - #endif #endif /* HDftruncate */ #ifndef HDfwrite #define HDfwrite(M,Z,N,F) fwrite(M,Z,N,F) @@ -994,15 +973,8 @@ H5_DLL int HDfprintf (FILE *stream, const char *fmt, ...); #ifndef HDlongjmp #define HDlongjmp(J,N) longjmp(J,N) #endif /* HDlongjmp */ -/* HDlseek and HDoff_t must be defined together for consistency. */ #ifndef HDlseek - #ifdef H5_HAVE_LSEEK64 - #define HDlseek(F,O,W) lseek64(F,O,W) - #define HDoff_t off64_t - #else - #define HDlseek(F,O,W) lseek(F,O,W) - #define HDoff_t off_t - #endif + #define HDlseek(F,O,W) lseek(F,O,W) #endif /* HDlseek */ #ifndef HDmalloc #define HDmalloc(Z) malloc(Z) -- cgit v0.12