On Fri, Mar 8, 2019 at 2:19 PM William A Rowe Jr <wr...@rowe-clan.net>
wrote:

>
> I'd like to give this question a few more days, and finally lock down
> our 1.7.0 candidate sometime later next week.
>

One obvious flaw I had missed in my earlier list, the problem with
maintainer mode strictness and our APR_OFF_T_FMT warnings.

I think the patch is as simple as prioritizing int over long... which would
be the same logic already in use for size_t etc. Could those on affected
platforms including the latest osx have a go at this configure hack before
I commit it? (Remember to ./buildconf after patching).

If this doesn't consistently work, I believe we would want to create a
flavor of the  APR_CHECK_TYPES_COMPATIBLE() macro to verify type and format
pattern against an actual strict printf() invocation.
Index: configure.in
===================================================================
--- configure.in	(revision 1855311)
+++ configure.in	(working copy)
@@ -1828,7 +1828,7 @@
 
 AC_MSG_CHECKING([which type to use for apr_off_t])
 if test "${ac_cv_sizeof_off_t}${apr_cv_use_lfs64}" = "4yes"; then
-    # LFS is go!
+    # LFS with distinct off64_t type
     off_t_fmt='#define APR_OFF_T_FMT APR_INT64_T_FMT'
     off_t_value='off64_t'
     off_t_strfn='apr_strtoi64'
@@ -1847,11 +1847,11 @@
     off_t_size="$ac_cv_sizeof_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
+    if test "$ac_cv_sizeof_off_t" = "$ac_cv_sizeof_int"; then
+        off_t_fmt='#define APR_OFF_T_FMT "d"'
+        off_t_strfn='strtol'
+    elif test "$ac_cv_sizeof_off_t" = "$ac_cv_sizeof_long"; then
         off_t_fmt='#define APR_OFF_T_FMT "ld"'
-        off_t_strfn='strtol'
-    elif test "$ac_cv_sizeof_off_t" = "$ac_cv_sizeof_int"; then
-        off_t_fmt='#define APR_OFF_T_FMT "d"'
         off_t_strfn='strtoi'
     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'

Reply via email to