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