[GRASS-dev] compilation of grass on AIX 7.1
Glynn Clements
glynn at gclements.plus.com
Thu Jul 18 11:48:58 PDT 2013
Markus Neteler wrote:
> I scanned the logs for (potential) errors and found a few:
>
> cd lib/gis/
> parser_interface.c: In function 'print_escaped_for_xml':
> parser_interface.c:67:2: warning: passing argument 2 of 'libiconv'
> from incompatible pointer type [enabled by default]
> /usr/opt/freeware/bin/../lib/gcc/../../include/iconv.h:83:15: note:
> expected 'const char **' but argument is of type 'char **'
This is harmless.
POSIX says both arguments should be "char **", and Linux agrees. There
is no formulation which will please both AIX and Linux.
http://pubs.opengroup.org/onlinepubs/9699919799/functions/iconv.html
Rationale for the incompatibility:
http://c-faq.com/ansi/constmismatch.html
> gmake[4]: Entering directory
> `/gpfs/home/neteler/software/grass-7.0.svn/lib/db/dbmi_driver'
> ...
> lex -t sqlp.l > sqlp.yy.c
> 5: (Warning) No translation given - null string assumed
> 209: (Warning) Executable statements should occur right after %%
> 210: (Warning) Executable statements should occur right after %%
> 211: (Warning) Executable statements should occur right after %%
Right; someone forgot the %{...%} around the comments:
--- lib/db/sqlp/sqlp.l (revision 57205)
+++ lib/db/sqlp/sqlp.l (working copy)
@@ -205,10 +205,11 @@
***************************************/
%}
"--".*$ ; /* comment */
-
+%{
/***************************************
* DEFAULT RULE
***************************************/
+%}
. { yyerror("Syntax error"); }
%%
> gmake[4]: Entering directory
> `/gpfs/home/neteler/software/grass-7.0.svn/lib/db/dbmi_base'
> ...
> dirent.c:20:0: warning: "R_OK" redefined [enabled by default]
> /usr/include/sys/access.h:52:0: note: this is the location of the
> previous definition
Indeed. I don't know why local definitions were added (they are
present in r11675, the oldest version in SVN), but they don't belong
there.
> gmake[3]: Entering directory
> `/gpfs/home/neteler/software/grass-7.0.svn/lib/imagery'
> ...
> iclass_statistics.c: In function 'I_iclass_free_statistics':
> iclass_statistics.c:114:5: warning: passing argument 1 of 'G_free'
> discards 'const' qualifier from pointer target type [enabled by
> default]
The IClass_statistics structure declares name and color as
"const char *".
Either the fields should be changed to "char *", or
I_iclass_free_statistics() should explicitly cast them in the G_free()
calls.
> gmake[4]: Entering directory
> `/gpfs/home/neteler/software/grass-7.0.svn/raster/r.clump'
> ...
> clump.c: In function 'clump':
> clump.c:68:5: warning: passing argument 1 of 'time' from incompatible
> pointer type [enabled by default]
> /usr/include/time.h:142:20: note: expected 'time_t *' but argument is
> of type 'long int *'
"cur_time" should be changed from long to time_t.
> clump.c: In function 'print_time':
> clump.c:258:5: warning: passing argument 1 of 'time' from incompatible
> pointer type [enabled by default]
> /usr/include/time.h:142:20: note: expected 'time_t *' but argument is
> of type 'long int *'
"done" should be changed from long to time_t.
--
Glynn Clements <glynn at gclements.plus.com>
More information about the grass-dev
mailing list