[postgis-tickets] [PostGIS] #3828: Warnings during compile on netbsd

PostGIS trac at osgeo.org
Sat Sep 2 17:06:56 PDT 2017


#3828: Warnings during compile on netbsd
----------------------+---------------------------
  Reporter:  robe     |      Owner:  pramsey
      Type:  defect   |     Status:  new
  Priority:  medium   |  Milestone:  PostGIS 2.4.0
 Component:  postgis  |    Version:  2.3.x
Resolution:           |   Keywords:
----------------------+---------------------------
Description changed by robe:

Old description:

> This is from Greg Troxel's packaging observations.
>

> https://lists.osgeo.org/pipermail/postgis-
> devel/2017-September/026358.html
>
> Two warnings that I don't remember from before and seem not quite right:
>
> build:
>
> gcc -I../../liblwgeom -O2 -D_FORTIFY_SOURCE=2 -I/usr/pkg/include
> -I/usr/include -I/usr/pkg/include/freetype2 -I/usr/include/krb5  -fPIC
> -DPIC  -Wall -Wmissing-prototypes -I/usr/pkg/include  -I/usr/pkg/include
> -I/usr/pkg/include -I/usr/include -I/usr/pkg/include/freetype2
> -I/usr/include/krb5  -c -o rt_raster.o rt_raster.c
> rt_raster.c: In function 'rt_raster_to_gdal_mem':
> rt_raster.c:1966:4: warning: implicit declaration of function 'strnicmp'
> [-Wimplicit-function-declaration]
>     if (strnicmp(pszDataPointer, "0x", 2) == 0)
>     ^
>
> I think this is #defined to strncasecmp, which needs <strings.h>
>
> check:
>
> (I realize this is some kind poor man's polymorphism, but given that
> this is C I would expect some kind of inline function (or maybe a macro)
> to do type-safe casting.  I admit to not reading the make check output
> from earlier versions.)
>
> gcc -O2 -D_FORTIFY_SOURCE=2 -I/usr/pkg/include -I/usr/include
> -I/usr/pkg/include/freetype2 -I/usr/include/krb5  -Wall -Wmissing-
> prototypes -I/usr/pkg/include  -I/usr/pkg/include -I/usr/include
> -I/usr/pkg/include/freetype2 -I/usr/include/krb5 -I.. -c -o
> cu_algorithm.o cu_algorithm.c
> cu_algorithm.c: In function 'test_lwpoly_construct_circle':
> cu_algorithm.c:1118:2: warning: passing argument 1 of
> 'lwgeom_count_vertices' from incompatible pointer type [enabled by
> default]
>   ASSERT_INT_EQUAL(lwgeom_count_vertices(p), segments_per_quad * 4 + 1);
>   ^
> In file included from ../liblwgeom_internal.h:48:0,
>                  from cu_algorithm.c:17:
> ../liblwgeom.h:1258:12: note: expected 'const struct LWGEOM *' but
> argument is of type 'struct LWPOLY *'
>  extern int lwgeom_count_vertices(const LWGEOM *geom);
>             ^
> cu_algorithm.c:1118:2: warning: passing argument 1 of
> 'lwgeom_count_vertices' from incompatible pointer type [enabled by
> default]
>   ASSERT_INT_EQUAL(lwgeom_count_vertices(p), segments_per_quad * 4 + 1);
>   ^
> In file included from ../liblwgeom_internal.h:48:0,
>                  from cu_algorithm.c:17:
> ../liblwgeom.h:1258:12: note: expected 'const struct LWGEOM *' but
> argument is of type 'struct LWPOLY *'
>  extern int lwgeom_count_vertices(const LWGEOM *geom);
>             ^
> cu_algorithm.c:1118:2: warning: passing argument 1 of
> 'lwgeom_count_vertices' from incompatible pointer type [enabled by
> default]
>   ASSERT_INT_EQUAL(lwgeom_count_vertices(p), segments_per_quad * 4 + 1);
>   ^
> In file included from ../liblwgeom_internal.h:48:0,
>                  from cu_algorithm.c:17:
> ../liblwgeom.h:1258:12: note: expected 'const struct LWGEOM *' but
> argument is of type 'struct LWPOLY *'
>  extern int lwgeom_count_vertices(const LWGEOM *geom);
>             ^
> cu_algorithm.c:1121:4: warning: assignment discards 'const' qualifier
> from pointer target type [enabled by default]
>   g = lwgeom_get_bbox(lwpoly_as_lwgeom(p));
>     ^
> cu_algorithm.c:1127:2: warning: passing argument 1 of 'lwgeom_area' from
> incompatible pointer type [enabled by default]
>   CU_ASSERT_DOUBLE_EQUAL(lwgeom_area(p), M_PI*5*5, 0.1);
>   ^
> In file included from ../liblwgeom_internal.h:48:0,
>                  from cu_algorithm.c:17:
> ../liblwgeom.h:1180:15: note: expected 'const struct LWGEOM *' but
> argument is of type 'struct LWPOLY *'
>  extern double lwgeom_area(const LWGEOM *geom);

New description:

 This is from Greg Troxel's packaging observations.

 for

 {{{
 PostgreSQL 9.3.18 on x86_64--netbsd, compiled by gcc (nb2 20150115) 4.8.5,
 64-bit
   Postgis 2.4.0beta1 - r15614 - 2017-09-02 16:57:24
   scripts 2.4.0beta1 r15614
   GEOS: 3.6.2-CAPI-1.10.2 4d2925d6
   PROJ: Rel. 4.9.3, 15 August 2016
 }}}



 https://lists.osgeo.org/pipermail/postgis-devel/2017-September/026358.html


 Two warnings that I don't remember from before and seem not quite right:

 build:

 gcc -I../../liblwgeom -O2 -D_FORTIFY_SOURCE=2 -I/usr/pkg/include
 -I/usr/include -I/usr/pkg/include/freetype2 -I/usr/include/krb5  -fPIC
 -DPIC  -Wall -Wmissing-prototypes -I/usr/pkg/include  -I/usr/pkg/include
 -I/usr/pkg/include -I/usr/include -I/usr/pkg/include/freetype2
 -I/usr/include/krb5  -c -o rt_raster.o rt_raster.c
 rt_raster.c: In function 'rt_raster_to_gdal_mem':
 rt_raster.c:1966:4: warning: implicit declaration of function 'strnicmp'
 [-Wimplicit-function-declaration]
     if (strnicmp(pszDataPointer, "0x", 2) == 0)
     ^

 I think this is #defined to strncasecmp, which needs <strings.h>

 check:

 (I realize this is some kind poor man's polymorphism, but given that
 this is C I would expect some kind of inline function (or maybe a macro)
 to do type-safe casting.  I admit to not reading the make check output
 from earlier versions.)

 gcc -O2 -D_FORTIFY_SOURCE=2 -I/usr/pkg/include -I/usr/include
 -I/usr/pkg/include/freetype2 -I/usr/include/krb5  -Wall -Wmissing-
 prototypes -I/usr/pkg/include  -I/usr/pkg/include -I/usr/include
 -I/usr/pkg/include/freetype2 -I/usr/include/krb5 -I.. -c -o cu_algorithm.o
 cu_algorithm.c
 cu_algorithm.c: In function 'test_lwpoly_construct_circle':
 cu_algorithm.c:1118:2: warning: passing argument 1 of
 'lwgeom_count_vertices' from incompatible pointer type [enabled by
 default]
   ASSERT_INT_EQUAL(lwgeom_count_vertices(p), segments_per_quad * 4 + 1);
   ^
 In file included from ../liblwgeom_internal.h:48:0,
                  from cu_algorithm.c:17:
 ../liblwgeom.h:1258:12: note: expected 'const struct LWGEOM *' but
 argument is of type 'struct LWPOLY *'
  extern int lwgeom_count_vertices(const LWGEOM *geom);
             ^
 cu_algorithm.c:1118:2: warning: passing argument 1 of
 'lwgeom_count_vertices' from incompatible pointer type [enabled by
 default]
   ASSERT_INT_EQUAL(lwgeom_count_vertices(p), segments_per_quad * 4 + 1);
   ^
 In file included from ../liblwgeom_internal.h:48:0,
                  from cu_algorithm.c:17:
 ../liblwgeom.h:1258:12: note: expected 'const struct LWGEOM *' but
 argument is of type 'struct LWPOLY *'
  extern int lwgeom_count_vertices(const LWGEOM *geom);
             ^
 cu_algorithm.c:1118:2: warning: passing argument 1 of
 'lwgeom_count_vertices' from incompatible pointer type [enabled by
 default]
   ASSERT_INT_EQUAL(lwgeom_count_vertices(p), segments_per_quad * 4 + 1);
   ^
 In file included from ../liblwgeom_internal.h:48:0,
                  from cu_algorithm.c:17:
 ../liblwgeom.h:1258:12: note: expected 'const struct LWGEOM *' but
 argument is of type 'struct LWPOLY *'
  extern int lwgeom_count_vertices(const LWGEOM *geom);
             ^
 cu_algorithm.c:1121:4: warning: assignment discards 'const' qualifier from
 pointer target type [enabled by default]
   g = lwgeom_get_bbox(lwpoly_as_lwgeom(p));
     ^
 cu_algorithm.c:1127:2: warning: passing argument 1 of 'lwgeom_area' from
 incompatible pointer type [enabled by default]
   CU_ASSERT_DOUBLE_EQUAL(lwgeom_area(p), M_PI*5*5, 0.1);
   ^
 In file included from ../liblwgeom_internal.h:48:0,
                  from cu_algorithm.c:17:
 ../liblwgeom.h:1180:15: note: expected 'const struct LWGEOM *' but
 argument is of type 'struct LWPOLY *'
  extern double lwgeom_area(const LWGEOM *geom);

--

--
Ticket URL: <https://trac.osgeo.org/postgis/ticket/3828#comment:2>
PostGIS <http://trac.osgeo.org/postgis/>
The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project.


More information about the postgis-tickets mailing list