On 17.01.2019 13:28, Stefan Sperling wrote: > On Thu, Jan 10, 2019 at 01:17:40AM +0100, Branko Čibej wrote: >> I get that part, my question was related to APR's configure setting the >> type of apr_off_t and its format specifier correctly on Linux but >> incorrectly on OpenBSD, even though they're equivalent. > It seems to be wrong on Linux as well. > > This is on a Debian 8.11 / amd64 system: > > $ cat test.c > #include <stdio.h> > #include <sys/types.h> > #include <apr-1.0/apr.h> > int main() > { > printf("sizeof(off_t)=%zd\n", sizeof(off_t)); > printf("sizeof(long)=%zd\n", sizeof(long)); > printf("sizeof(long long)=%zd\n", sizeof(long long)); > printf("APR_OFF_T_FMT=" APR_OFF_T_FMT "\n"); > return 0; > } > $ cc -o test test.c > $ ./test > sizeof(off_t)=8 > sizeof(long)=8 > sizeof(long long)=8 > APR_OFF_T_FMT=ld
That doesn't tell me anything .... the question is, what is the typedef for apr_off_t on linux? if it's 'long' there but 'long long' on OpenBSD, then *something* is being done specially there. FWIW: All these types (apr_off_t, apr_size_t, apr_ssize_t) should be set to their OS/ABI underlying types where those are available. But they're not as far as I know. -- Brane