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

Reply via email to