Peter Eisentraut - PostgreSQL writes:
The code that checks for the 64-bit int type now gives more reasonable
results when cross-compiling: In that case we just take the compiler's
information and trust that the arithmetic works. Disabling int64 is too
pessimistic.
It's not so much that we can't trust the arithmetic as that we shouldn't
trust that the platform's s(n)printf supports int64. This situation
used to be a reality on older machines with gcc but no int64 type in the
native compiler, and I suspect there are still some of them out there.

I think a reasonable choice in cross-compiling situations would be to
assume int64 works if we have a long long int datatype, but to force use
of our own snprintf rather than trusting to luck with the platform's.

(It didn't look like that's what happens right now, but I might be
missing something in the autoconf spaghetti.)

regards, tom lane

Search Discussions

  • Peter Eisentraut at Jan 29, 2003 at 5:53 pm

    Tom Lane writes:

    I think a reasonable choice in cross-compiling situations would be to
    assume int64 works if we have a long long int datatype, but to force use
    of our own snprintf rather than trusting to luck with the platform's.
    That's approximately what's happening. Formerly it insisted on doing a
    run check to detect the int64 type. Now it does a compile check when
    cross-compiling.

    For the snprintf format detection we obviously don't have that chance. I
    just refactored the code a little and added a cache variable so the
    advanced cross-compiling user can override the check with known values.

    --
    Peter Eisentraut peter_e@gmx.net

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouppgsql-ports @
categoriespostgresql
postedJan 29, '03 at 3:24a
activeJan 29, '03 at 5:53p
posts2
users2
websitepostgresql.org
irc#postgresql

2 users in discussion

Peter Eisentraut: 1 post Tom Lane: 1 post

People

Translate

site design / logo © 2022 Grokbase