Re: Cannot compile C++ programs with WARNS > 3 on 4.0_BETA2

Jeremie Le Hen <[email protected]>
Newsgroups gmane.os.netbsd.devel.general
Message-ID <[email protected]>
Hubert,

On Mon, Jan 22, 2007 at 05:55:55PM +0100, Hubert Feyrer wrote:
> On Mon, 22 Jan 2007, Jeremie Le Hen wrote:
> >% 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: warning: command line option "-std=gnu99" is valid for C/ObjC 
> >but not for C++
> ...
> >The fix is trivial and the patch is following:
> [drop -std=gnu99 from CXXFLAGS]
> 
> Why do you think it's better to make the system headers drop a wrongly 
> used option? Personally, I'd say you shouldn't use that option, as the 
> error/warning says.
> 
> (other lists that may be relevant for are tech-toolchain@ and 
> tech-userlevel@).

Sorry, I should have explained better the problem.  Here is my
Makefile:

% PROG_CXX=       zthreadstub
% SRCS=           zthreadstub.cc
% INCS=           zthreadstub.hh
% MAN=
% DEBUG_FLAGS=    -g
% WARNS=          6
% LDADD=          -lpthread
% 
% OBJS+=          threadpool.o
% threadpool.o:   threadpool/threadpool.c
% 
% .include <bsd.prog.mk>

As you can see, I don't fiddle CFLAGS at all.  Actually the system is
adding --std=gnu99 itself in share/mk/bsd.sys.mk:

% octobrebsd:mk# grep -C 1 gnu99 bsd.sys.mk
% .if ${WARNS} > 3 && ${HAVE_GCC} >= 3
% CFLAGS+=        -std=gnu99
% .endif

Whereas share/mk/sys.mk makes CXXFLAGS depends on CFLAGS:

% octobrebsd:mk# grep ^CXXFLAGS sys.mk
% CXXFLAGS?=      ${CFLAGS:N-Wno-traditional:N-Wstrict-prototypes:N-Wmissing-prototypes}


Thus my fix:

-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}


I hope I am not misunderstanding something.
Best regards,
-- 
Jeremie Le Hen
< jeremie at le-hen dot org >< ttz at chchile dot org >
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.