[gdal-dev] results from building with -Werror on NetBSD

Greg Troxel gdt at ir.bbn.com
Sun Nov 1 08:29:02 PST 2015


(I just checked out svn trunk and have built on NetBSD 6 i386, with only
a few small issues.   I'm not entirely clear on whether I should be
filing bugs as some of the issues are a bit confusing.  I'm sending
separate mails as the issues are unrelated.   The good news is that I
didn't find any format-string warnings about types.)

The first issue is that in cpl_conv.cc, I got an error about atoll not
being defined.  This surprised me, because stdlib.h was included.
However there are a lot of namespacing includes in there; atoll is from
C99.  A simple test program builds fine.

Building gdal results in a complain that atoll was not declared (log at
end).

The following patch resolves the issue.  I don't understand the strategy
for turning on/off the namespacing defines, but clearly something is
going on because I normally don't see _XOPEN_SOURCE defined.

Index: port/cpl_conv.cpp
===================================================================
--- port/cpl_conv.cpp	(revision 31282)
+++ port/cpl_conv.cpp	(working copy)
@@ -31,6 +31,9 @@
 // For uselocale
 #define _XOPEN_SOURCE 700 
 
+// For atoll
+#define _ISOC99_SOURCE
+
 #ifdef MSVC_USE_VLD
 #include <vld.h>
 #endif


----------------------------------------
[The following test program compiles warning-free with -Wall with both
gcc and clang, with as gcc main.c or g++ main.cc]

#include <stdlib.h>

int main()
{
  long long i;

  i = atoll("1234");

  return 0;
}
----------------------------------------
[log from gdal without my change]

gmake[1]: Entering directory '/usr/home/gdt/SOFTWARE/GEO/gdal/port'
/bin/ksh /home/gdt/SOFTWARE/GEO/gdal/libtool --mode=compile --tag=CXX g++ -I/home/gdt/SOFTWARE/GEO/gdal/port -I/home/gdt/SOFTWARE/GEO/gdal/gcore -I/home/gdt/SOFTWARE/GEO/gdal/alg -I/home/gdt/SOFTWARE/GEO/gdal/ogr -I/home/gdt/SOFTWARE/GEO/gdal/ogr/ogrsf_frmts -I/home/gdt/SOFTWARE/GEO/gdal/gnm -I/home/gdt/SOFTWARE/GEO/gdal/apps -g -O2  -Wall -Wextra -Winit-self -Wunused-parameter -Wformat -Werror=format-security -Wno-format-nonliteral -Werror=vla -Wno-clobbered -Wmissing-declarations  -DOGR_ENABLED -I/usr/pkg/include -I/home/gdt/SOFTWARE/GEO/gdal/port -I/usr/pkg/include  -DGDAL_COMPILATION	-I/usr/pkg/include  -DHAVE_CURL -DHAVE_LIBZ -I/usr/pkg/include/libxml2 -DHAVE_LIBXML2 -DUSE_ONLY_CRYPTODLL_ALG -c -o cpl_conv.lo cpl_conv.cpp
libtool: compile:  g++ -I/home/gdt/SOFTWARE/GEO/gdal/port -I/home/gdt/SOFTWARE/GEO/gdal/gcore -I/home/gdt/SOFTWARE/GEO/gdal/alg -I/home/gdt/SOFTWARE/GEO/gdal/ogr -I/home/gdt/SOFTWARE/GEO/gdal/ogr/ogrsf_frmts -I/home/gdt/SOFTWARE/GEO/gdal/gnm -I/home/gdt/SOFTWARE/GEO/gdal/apps -g -O2 -Wall -Wextra -Winit-self -Wunused-parameter -Wformat -Werror=format-security -Wno-format-nonliteral -Werror=vla -Wno-clobbered -Wmissing-declarations -DOGR_ENABLED -I/usr/pkg/include -I/home/gdt/SOFTWARE/GEO/gdal/port -I/usr/pkg/include -DGDAL_COMPILATION -I/usr/pkg/include -DHAVE_CURL -DHAVE_LIBZ -I/usr/pkg/include/libxml2 -DHAVE_LIBXML2 -DUSE_ONLY_CRYPTODLL_ALG -c cpl_conv.cpp  -fPIC -DPIC -o .libs/cpl_conv.o
cpl_conv.cpp: In function 'GUIntBig CPLScanUIntBig(const char*, int)':
cpl_conv.cpp:915:30: error: 'atoll' was not declared in this scope
cpl_conv.cpp: In function 'GIntBig CPLAtoGIntBig(const char*)':
cpl_conv.cpp:941:29: error: 'atoll' was not declared in this scope
cpl_conv.cpp: In function 'GIntBig CPLAtoGIntBigEx(const char*, int, int*)':
cpl_conv.cpp:994:29: error: 'atoll' was not declared in this scope
cpl_conv.cpp: In function 'GIntBig CPLAtoGIntBig(const char*)':
cpl_conv.cpp:945:1: warning: control reaches end of non-void function
../GDALmake.opt:653: recipe for target 'cpl_conv.lo' failed
gmake[1]: *** [cpl_conv.lo] Error 1
gmake[1]: Leaving directory '/usr/home/gdt/SOFTWARE/GEO/gdal/port'
GNUmakefile:70: recipe for target 'port-target' failed
gmake: *** [port-target] Error 2
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 180 bytes
Desc: not available
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20151101/62f46860/attachment.sig>


More information about the gdal-dev mailing list