List Info

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




Re: Cannot compile C++ programs with WARNS > 3 on 4.0_BETA2
user name
2007-01-22 11:34:03
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 $ > 3 && $ >= 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-p
rototypes}


Thus my fix:

-CXXFLAGS?=    
${CFLAGS:N-Wno-traditional:N-Wstrict-prototypes:N-Wmissing-p
rototypes}
+CXXFLAGS?=    
${CFLAGS:N-Wno-traditional:N-Wstrict-prototypes:N-Wmissing-p
rototypes: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 >

[1]

about | contact  Other archives ( Real Estate discussion Medical topics )