Subject: Cannot compile C++ programs with WARNS > 3 on 4.0_BETA2
To: None <tech-misc@NetBSD.org>
From: Jeremie Le Hen <jeremie@le-hen.org>
List: tech-misc
Date: 01/22/2007 17:48:26
Hi list,

Sorry if this is the wrong list to post this and feel free to point me
out a more correct one.  Please Cc: me in your replies, I am not
subscribed to this list.

I'm usually developping on FreeBSD but I wanted to test my application
on NetBSD as well.  The good news is they're both using almost the
same makefile framework.

I used to compile my source using WARNS=6 on FreeBSD and the latter
fails on NetBSD 4.0_BETA2:

% #   compile  poolexecutor/zthreadstub.o
% c++ -O2 -Wall -Wpointer-arith -Wno-sign-compare -Wreturn-type -Wswitch -Wshadow -Wcast-qual -Wwrite-strings -Wextra -Wno-unused-parameter -std=gnu99 -Werror   -Wabi -Wold-style-cast -Wctor-dtor-privacy -Wnon-virtual-dtor -Wreorder  -Wno-deprecated -Wno-non-template-friend  -Woverloaded-virtual -Wno-pmf-conversions -Wsign-promo -Wsynth     -c    zthreadstub.cc
% cc1plus: warnings being treated as errors
% cc1plus: warning: command line option "-std=gnu99" is valid for C/ObjC but not for C++
% *** Error code 1


The fix is trivial and the patch is following:

--- 8< --- 8< --- 8< --- 8< --- 8< ---
Index: sys.mk
===================================================================
RCS file: /pub/NetBSD-CVS/src/share/mk/sys.mk,v
retrieving revision 1.88
diff -u -r1.88 sys.mk
--- sys.mk      26 Aug 2006 19:57:03 -0000      1.88
+++ sys.mk      22 Jan 2007 16:45:19 -0000
@@ -44,7 +44,7 @@
 LINK.c?=       ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}

 CXX?=          c++
-CXXFLAGS?=     ${CFLAGS:N-Wno-traditional:N-Wstrict-prototypes:N-Wmissing-prototypes}
+CXXFLAGS?=     ${CFLAGS:N-Wno-traditional:N-Wstrict-prototypes:N-Wmissing-prototypes:N-std=gnu99}
 COMPILE.cc?=   ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c
 LINK.cc?=      ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}
--- 8< --- 8< --- 8< --- 8< --- 8< ---

Thank you for you work guys !
Best regards,
-- 
Jeremie Le Hen
< jeremie at le-hen dot org >< ttz at chchile dot org >