Subversion 1.14.1
Franz Sirl
Franz.Sirl-kernel at lauterbach.com
Wed Sep 1 15:36:46 CEST 2021
Hi Dagobert,
Am 2021-09-01 um 14:28 schrieb Dagobert Michelsen:
> I see. Recompiling APR would require recompiling some dependend packages,
> but not too many:
> https://www.opencsw.org/packages/CSWlibapr1-0/
Well, that would be nice, too :-). I just wasn't sure if you can force
an update of all dependent packages at the *user* sites within the
OpenCSW framework. Meaning that it won't be good if for example a user
mixes a new (_FILE_OFFSET_BITS=64) apr with an old subversion.
So I thought enabling BUILD64=1 for subversion is the safer way to
accomplish my goal.
> Maybe I have not fully understood the issue, but wouldn’t a 64 bit subversion automatically
> include the 64 bit directory cookies as it automatically implies 64 bit data structures?
> And this should already be the case for 64 bit APR. The split header for 32 and 64 bit
> was not needed in the past IIRC.
The bug is exactly that the header is not split! I've attached a full
diff between apr-32.h and apr-64.h as seen on Solaris11, but the most
important difference is
-#define APR_SIZEOF_VOIDP 4
+#define APR_SIZEOF_VOIDP 8
That's essentially why a 64-bit subversion compiled without a separate
apr-64.h won't pass the tests and also doesn't work in practice as I've
found out before I did the changes to apr.
Gruesse,
Franz
-------------- next part --------------
--- /opt/csw/include/apr-32.h 2021-04-23 15:02:51.000000000 +0200
+++ /opt/csw/include/apr-64.h 2021-04-23 15:10:21.000000000 +0200
@@ -294,7 +294,7 @@
#define APR_HAS_UNICODE_FS 0
#define APR_HAS_PROC_INVOKED 0
#define APR_HAS_USER 1
-#define APR_HAS_LARGE_FILES 1
+#define APR_HAS_LARGE_FILES 0
#define APR_HAS_XTHREAD_FILES 0
#define APR_HAS_OS_UUID 1
#define APR_HAS_TIMEDLOCKS 1
@@ -333,7 +333,7 @@
typedef int apr_int32_t;
typedef unsigned int apr_uint32_t;
-#define APR_SIZEOF_VOIDP 4
+#define APR_SIZEOF_VOIDP 8
/*
* Darwin 10's default compiler (gcc42) builds for both 64 and
@@ -378,9 +378,9 @@
typedef size_t apr_size_t;
typedef ssize_t apr_ssize_t;
-typedef off64_t apr_off_t;
+typedef off_t apr_off_t;
typedef socklen_t apr_socklen_t;
-typedef unsigned long apr_ino_t;
+typedef ino_t apr_ino_t;
#if APR_SIZEOF_VOIDP == 8
typedef apr_uint64_t apr_uintptr_t;
@@ -555,10 +555,10 @@
#define APR_SIZE_T_FMT "lu"
/* And APR_OFF_T_FMT */
-#define APR_OFF_T_FMT APR_INT64_T_FMT
+#define APR_OFF_T_FMT "ld"
/* And APR_PID_T_FMT */
-#define APR_PID_T_FMT "ld"
+#define APR_PID_T_FMT "d"
/* And APR_INT64_T_FMT */
#define APR_INT64_T_FMT PRId64
More information about the users
mailing list