On 25-11-2007 11:38:45 +0100, Stefan Manegold wrote:
On Sun, Nov 25, 2007 at 10:18:26AM +0000, Fabian wrote:
Update of /cvsroot/monetdb/sql/src/backends/monet5 In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv26685
Modified Files: merovingian.mx Log Message: Attempt to fix some compiler warnings. I cannot test myself, as I don't get them, and if I use TestWeb's CFLAGS the code doesn't compile at all at a much earlier stage.
"TestWeb" does not use any (particular) CFLAGS, but just the default that (our) configure uses/provides (with --enable-strict, which is default for the development trunk).
In case you have problems with this (or other) settings, please help us fixing them by reporting them ans bug report.
The compiler warning is triggered by the following setting in lines 742,3 of buildtools/conf/MonetDB.m4 ======== dnl The default configure invocation when doing an rpmbuild also uses this X_CFLAGS="$X_CFLAGS -Wp,-D_FORTIFY_SOURCE=2" ========
Point is, that this is already in my X_CFLAGS, and apparently it is not enough. However, the Gentoo machine (which is complaining on this topic), uses the following X_CFLAGS: -Werror-implicit-function-declaration -Werror -Wpointer-arith -Wdeclaration-after-statement -Wundef -Wp,-D_FORTIFY_SOURCE=2 And this makes it die in some bison generated code, hence I didn't file a bug.
Some functions (system calls) do return, whether they were successful, or not, and the calling ocde should check the respective return values. Ignoring them via (e.g.) (void)write(...); will (most probably) not help. Rather, the code should check the results, e.g., if (write(...) < 0) { ... } or at least pretend to do so, e.g., ssize_t wrt_res = 0; wrt_res = write(...); (void)wrt_res; /* deliberately irgnore portential errors */
Yes, but interestingly if you look at the error, it only complains about the 5th or so write invocation, all the earlier ones it simply appears to be happy about. Its really a bit misterious to me as to why.