You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apr.apache.org by jo...@apache.org on 2004/03/07 21:31:31 UTC

cvs commit: apr configure.in

jorton      2004/03/07 12:31:31

  Modified:    .        Tag: APR_0_9_BRANCH configure.in
  Log:
  * configure.in: Define apr_off_t as long on 32-bit systems with a
  32-bit off_t, rather than as int, and as off_t everywhere else, for
  simplicity and to preserve ABI compatibility of C++ libraries which
  make use apr_off_t in interfaces.
  
  Revision  Changes    Path
  No                   revision
  No                   revision
  1.535.2.7 +21 -11    apr/configure.in
  
  Index: configure.in
  ===================================================================
  RCS file: /home/cvs/apr/configure.in,v
  retrieving revision 1.535.2.6
  retrieving revision 1.535.2.7
  diff -w -d -u -r1.535.2.6 -r1.535.2.7
  --- configure.in	22 Feb 2004 12:41:38 -0000	1.535.2.6
  +++ configure.in	7 Mar 2004 20:31:31 -0000	1.535.2.7
  @@ -1177,19 +1177,29 @@
   
   if test "$ac_cv_type_off_t" = "yes"; then
       APR_CHECK_SIZEOF_EXTENDED([#include <sys/types.h>], off_t, 8)
  -    if test "$ac_cv_sizeof_off_t" = "2"; then
  -        off_t_value='apr_int16_t'
  -        off_t_fmt='#define APR_OFF_T_FMT APR_INT16_T_FMT'
  -    elif test "$ac_cv_sizeof_off_t" = "4"; then
  -        off_t_value='apr_int32_t'
  +    AC_MSG_CHECKING([which type to use for apr_off_t])
  +    if test "${ac_cv_sizeof_off_t}${ac_cv_sizeof_long}" = "44"; then
  +        # Special case: off_t may change size with _FILE_OFFSET_BITS
  +        # on 32-bit systems with LFS support.  To avoid compatibility
  +        # with other software which may export _FILE_OFFSET_BITS,
  +        # hard-code apr_off_t to long.
  +        off_t_value=long
  +        off_t_fmt='#define APR_OFF_T_FMT "ld"'
  +    else
  +        off_t_value=off_t
  +        # off_t is more commonly a long than an int; prefer that case
  +        # where int and long are the same size.
  +        if test "$ac_cv_sizeof_off_t" = "$ac_cv_sizeof_long"; then
  +            off_t_fmt='#define APR_OFF_T_FMT "ld"'
  +        elif test "$ac_cv_sizeof_off_t" = "$ac_cv_sizeof_int"; then
           off_t_fmt='#define APR_OFF_T_FMT "d"'
  -    elif test "$ac_cv_sizeof_off_t" = "8"; then
  -        off_t_value='apr_int64_t'
  +        elif test "$ac_cv_sizeof_off_t" = "$ac_cv_sizeof_long_long"; then
           off_t_fmt='#define APR_OFF_T_FMT APR_INT64_T_FMT'
       else
  -        off_t_value='apr_int64_t'
  -        off_t_fmt='#error Can not determine the proper size for off_t'
  +            AC_ERROR([could not determine the size of off_t])
  +        fi
       fi
  +    AC_MSG_RESULT([$off_t_value])
   else
       off_t_value='apr_int32_t'
       off_t_fmt='#define APR_OFF_T_FMT "d"'