[geos-devel] GEOS-3.0.0rc1 in a week, SWIG status ?
strk at refractions.net
strk at refractions.net
Thu Jul 6 17:32:22 EDT 2006
<stdint.h> was added to allow testing of int64_t.
When building with -pedantic the 'long long' is warned about,
while using int64_t is accepted nicely.
I guess that every system having a 64bit "long long" also
has an int64_t, we just need to find the appropriate header...
--strk;
On Thu, Jul 06, 2006 at 02:00:55PM -0600, Michael Fuhr wrote:
> On Thu, Jul 06, 2006 at 07:55:46AM -0600, Michael Fuhr wrote:
> > I'm still having a few problems on Solaris 9/sparc, though. During
> > the build I see a lot of the following warnings:
> >
> > warning: #warning "Could not find 64bit integer definition!"
> > warning: right shift count >= width of type
> >
> > I'm also getting some test failures; see the attached file.
>
> The problem finding a 64-bit integer type is due to an inability
> to compile the PGAC_TYPE_64BIT_INT conftest program. That program
> includes <stdint.h>, which doesn't exist on Solaris 9, so the compile
> fails, causing the test to fail for all candidate types. I removed
> <stdint.h> from the test program; configure then found a 64-bit type:
>
> checking whether int64_t is 64 bits... no
> checking whether long int is 64 bits... no
> checking whether long long int is 64 bits... yes
>
> The PGAC_TYPE_64BIT_INT definition in acsite.m4 appears to be
> borrowed from PostgreSQL, although current releases of PostgreSQL
> have slightly different code. I've attached the latest definition as
> found in config/c-compiler.m4 in the 8.1.4 source code. I replaced
> the GEOS acsite.m4 with this file; the build then succeeded and all
> tests passed.
>
> --
> Michael Fuhr
> # PGAC_TYPE_64BIT_INT(TYPE)
> # -------------------------
> # Check if TYPE is a working 64 bit integer type. Set HAVE_TYPE_64 to
> # yes or no respectively, and define HAVE_TYPE_64 if yes.
> AC_DEFUN([PGAC_TYPE_64BIT_INT],
> [define([Ac_define], [translit([have_$1_64], [a-z *], [A-Z_P])])dnl
> define([Ac_cachevar], [translit([pgac_cv_type_$1_64], [ *], [_p])])dnl
> AC_CACHE_CHECK([whether $1 is 64 bits], [Ac_cachevar],
> [AC_TRY_RUN(
> [typedef $1 ac_int64;
>
> /*
> * These are globals to discourage the compiler from folding all the
> * arithmetic tests down to compile-time constants.
> */
> ac_int64 a = 20000001;
> ac_int64 b = 40000005;
>
> int does_int64_work()
> {
> ac_int64 c,d;
>
> if (sizeof(ac_int64) != 8)
> return 0; /* definitely not the right size */
>
> /* Do perfunctory checks to see if 64-bit arithmetic seems to work */
> c = a * b;
> d = (c + b) / b;
> if (d != a+1)
> return 0;
> return 1;
> }
> main() {
> exit(! does_int64_work());
> }],
> [Ac_cachevar=yes],
> [Ac_cachevar=no],
> [# If cross-compiling, check the size reported by the compiler and
> # trust that the arithmetic works.
> AC_COMPILE_IFELSE([AC_LANG_BOOL_COMPILE_TRY([], [sizeof($1) == 8])],
> Ac_cachevar=yes,
> Ac_cachevar=no)])])
>
> Ac_define=$Ac_cachevar
> if test x"$Ac_cachevar" = xyes ; then
> AC_DEFINE(Ac_define,, [Define to 1 if `]$1[' works and is 64 bits.])
> fi
> undefine([Ac_define])dnl
> undefine([Ac_cachevar])dnl
> ])# PGAC_TYPE_64BIT_INT
> _______________________________________________
> geos-devel mailing list
> geos-devel at geos.refractions.net
> http://geos.refractions.net/mailman/listinfo/geos-devel
--
/"\ ASCII Ribbon Campaign
\ / Respect for low technology.
X Keep e-mail messages readable by any computer system.
/ \ Keep it ASCII.
More information about the geos-devel
mailing list