[geos-devel] cygwin Compile Error

strk at refractions.net strk at refractions.net
Fri Feb 18 12:18:14 EST 2005


On Thu, Feb 17, 2005 at 01:24:59PM -0500, Jon Schlueter wrote:
> update,
> 
> I found multiple math.h includes but the only thing that I could find
> that would get it to compile under cygwin was to make ieeefp.h extern
> "C" with the following

Didn't using <cmath> all over work (I don't think we should have
direct .h inclusions anyway)
--strk;

> 
> Index: geos/platform.h.in
> ===================================================================
> RCS file: /home/cvs/postgis/geos/source/headers/geos/platform.h.in,v
> retrieving revision 1.6
> diff -u -b -r1.6 platform.h.in
> --- geos/platform.h.in  30 Nov 2004 13:05:59 -0000      1.6
> +++ geos/platform.h.in  17 Feb 2005 18:35:49 -0000
> @@ -11,7 +11,10 @@
>  #undef HAVE_IEEEFP_H
> 
>  #ifdef HAVE_IEEEFP_H
> +extern "C"
> +{
>  #include <ieeefp.h>
> +};
>  #endif
> 
> and I'm not totally sure of the ramifications of this change to other platforms
> 
> it is compiling and passes the tests with this change
> 
> Thanks
> Jon Schlueter
> 
> 
> On Thu, 17 Feb 2005 10:43:43 +0100, strk at refractions.net
> <strk at refractions.net> wrote:
> > I've applied your patch.
> > Thanks.
> > --strk;
> > 
> > On Wed, Feb 16, 2005 at 05:15:22PM -0500, Jon Schlueter wrote:
> > > I'm using cygwin under windows xp pro
> > >
> > > $ gcc -v
> > > Reading specs from /usr/lib/gcc-lib/i686-pc-cygwin/3.3.3/specs
> > > Configured with: /gcc/gcc-3.3.3-3/configure --verbose --prefix=/usr
> > > --exec-prefix=/usr --sysconfdir=/etc --libdir=/usr/lib
> > > --libexecdir=/usr/lib --mandir=/usr/share/man
> > > --infodir=/usr/share/info
> > > --enable-languages=c,ada,c++,d,f77,java,objc,
> > > pascal --enable-nls --without-included-gettext --enable-libgcj
> > > --with-system-zlib --enable-interpreter --enable-threads=posix
> > > --enable-java-gc=boehm --enable-sjlj-exceptions
> > > --disable-version-specific-runtime-libs --disable-win32-registry
> > > Thread model: posix
> > > gcc version 3.3.3 (cygwin special)
> > >
> > > I just pulled down the CVS version of geos from CVS
> > >
> > > I configured it and then tried compiling when I hit this error
> > >
> > > Jonschl at Endemion ~/geos-cvs/geos/source/geom
> > > $ make
> > > if /bin/bash ../../libtool --mode=compile --tag=CXX g++
> > > -DHAVE_CONFIG_H -I. -I. -I../../source/headers -I../../source/he
> > > aders/geos -I../../source/headers -DGEOS_VERSION=""2.1.1""    -g -O2
> > > -MT CommonBits.lo -MD -MP -MF ".deps/CommonBits.Tpo
> > > " -c -o CommonBits.lo `test -f '../precision/CommonBits.cpp' || echo
> > > './'`../precision/CommonBits.cpp; \
> > > then mv -f ".deps/CommonBits.Tpo" ".deps/CommonBits.Plo"; else rm -f
> > > ".deps/CommonBits.Tpo"; exit 1; fi
> > >  g++ -DHAVE_CONFIG_H -I. -I. -I../../source/headers
> > > -I../../source/headers/geos -I../../source/headers -DGEOS_VERSION=2.
> > > 1.1 -g -O2 -MT CommonBits.lo -MD -MP -MF .deps/CommonBits.Tpo -c
> > > ../precision/CommonBits.cpp  -DPIC -o .libs/CommonBits.
> > > o
> > > In file included from /usr/include/c++/3.3.3/cmath:51,
> > >                  from /usr/include/c++/3.3.3/bits/locale_facets.tcc:41,
> > >                  from /usr/include/c++/3.3.3/locale:47,
> > >                  from /usr/include/c++/3.3.3/bits/ostream.tcc:37,
> > >                  from /usr/include/c++/3.3.3/ostream:535,
> > >                  from /usr/include/c++/3.3.3/iostream:45,
> > >                  from ../../source/headers/geos/geom.h:20,
> > >                  from ../../source/headers/geos/precision.h:54,
> > >                  from ../precision/CommonBits.cpp:27:
> > > /usr/include/ieeefp.h:185: error: previous declaration of `int isnan(double)'
> > >    with C++ linkage
> > > /usr/include/math.h:125: error: conflicts with new declaration with C linkage
> > > /usr/include/ieeefp.h:186: error: previous declaration of `int isinf(double)'
> > >    with C++ linkage
> > > /usr/include/math.h:126: error: conflicts with new declaration with C linkage
> > > /usr/include/ieeefp.h:187: error: previous declaration of `int finite(double)'
> > >    with C++ linkage
> > > /usr/include/math.h:127: error: conflicts with new declaration with C linkage
> > > /usr/include/ieeefp.h:191: error: previous declaration of `int isnanf(float)'
> > >    with C++ linkage
> > > /usr/include/math.h:240: error: conflicts with new declaration with C linkage
> > > /usr/include/ieeefp.h:192: error: previous declaration of `int isinff(float)'
> > >    with C++ linkage
> > > /usr/include/math.h:241: error: conflicts with new declaration with C linkage
> > > /usr/include/ieeefp.h:193: error: previous declaration of `int finitef(float)'
> > >    with C++ linkage
> > > /usr/include/math.h:242: error: conflicts with new declaration with C linkage
> > > make: *** [CommonBits.lo] Error 1
> > >
> > >
> > > I did a little bit of digging and found the following patch fixed the
> > > compile error
> > >
> > > $ cvs diff -ub
> > > cvs diff: Diffing .
> > > Index: geom.h
> > > ===================================================================
> > > RCS file: /home/cvs/postgis/geos/source/headers/geos/geom.h,v
> > > retrieving revision 1.38
> > > diff -u -b -r1.38 geom.h
> > > --- geom.h      15 Feb 2005 17:15:13 -0000      1.38
> > > +++ geom.h      16 Feb 2005 22:25:34 -0000
> > > @@ -22,7 +22,7 @@
> > >  #include <vector>
> > >  #include <algorithm>
> > >  #include <map>
> > > -#include <math.h>
> > > +#include <cmath>
> > >  #include <geos/platform.h>
> > >
> > >  using namespace std;
> > >
> > >
> > > Is this a known issue? or just on my system?
> > >
> > > Jon Schlueter
> > > _______________________________________________
> > > geos-devel mailing list
> > > geos-devel at geos.refractions.net
> > > http://geos.refractions.net/mailman/listinfo/geos-devel
> > _______________________________________________
> > geos-devel mailing list
> > geos-devel at geos.refractions.net
> > http://geos.refractions.net/mailman/listinfo/geos-devel
> >
> _______________________________________________
> geos-devel mailing list
> geos-devel at geos.refractions.net
> http://geos.refractions.net/mailman/listinfo/geos-devel



More information about the geos-devel mailing list