From: Paul Ramsey Date: Fri, 29 Jan 2010 21:24:24 +0000 (+0000) Subject: Keep floats out of registers for spheroid calculation. Fixes odd bug in OS/X gcc... X-Git-Tag: 1.5.0rc2~3 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2bfaa2112f8c3f96f0fd803d23ccf29ddd1672ed;p=postgis Keep floats out of registers for spheroid calculation. Fixes odd bug in OS/X gcc 4.1. Could probably be narrowed to only use flag on affected platform. (#395) git-svn-id: http://svn.osgeo.org/postgis/trunk@5180 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/configure.ac b/configure.ac index cc8153973..53c91189b 100644 --- a/configure.ac +++ b/configure.ac @@ -40,6 +40,13 @@ AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -Wall], [_cv_wall], [-Wall], [ AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -Wmissing-prototypes], [_cv_misprot], [-Wmissing-prototypes], [], [WARNFLAGS="$WARNFLAGS -Wmissing-prototypes"], []) AC_SUBST([WARNFLAGS]) +dnl +dnl For some GCC versions and platforms, floating point issues need to be +dnl ironed out. +NUMERICFLAGS="" +AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -ffloat-store], [dummy_cv_ffloat_store], [-ffloat-store], [], [NUMERICFLAGS="$NUMERICFLAGS -ffloat-store"], []) +AC_SUBST([NUMERICFLAGS]) + dnl dnl Define executable suffix for use with the loader Makefiles dnl diff --git a/liblwgeom/Makefile.in b/liblwgeom/Makefile.in index dc6bb771e..7a1807b30 100644 --- a/liblwgeom/Makefile.in +++ b/liblwgeom/Makefile.in @@ -12,6 +12,7 @@ CC=@CC@ CFLAGS=@CFLAGS@ @PICFLAGS@ @WARNFLAGS@ +NUMERICFLAGS=@NUMERICFLAGS@ YACC=@YACC@ LEX=@LEX@ @@ -50,20 +51,23 @@ SA_OBJS = \ g_serialized.o \ g_util.o \ lwgeodetic.o \ - lwspheroid.o \ lwtree.o +NM_OBJS = \ + lwspheroid.o + SA_HEADERS = \ liblwgeom.h \ lwalgorithm.h all: liblwgeom.a -liblwgeom.a: $(SA_OBJS) $(SA_HEADERS) - ar rs liblwgeom.a $(SA_OBJS) +liblwgeom.a: $(SA_OBJS) $(NM_OBJS) $(SA_HEADERS) + ar rs liblwgeom.a $(SA_OBJS) $(NM_OBJS) clean: rm -f $(SA_OBJS) + rm -f $(NM_OBJS) rm -f liblwgeom.a check: liblwgeom.a @@ -73,6 +77,11 @@ check: liblwgeom.a $(SA_OBJS): %.o: %.c $(CC) $(CFLAGS) -c -o $@ $< +# Command to build each of the .o files +$(NM_OBJS): %.o: %.c + $(CC) $(CFLAGS) $(NUMERICFLAGS) -c -o $@ $< + + # Commands to generate the lexer and parser from input files wktparse.tab.c: wktparse.y $(YACC) -vd -p lwg_parse_yy wktparse.y