sys.mk automatically gets included by make(1) and sets CXXFLAGS to
CFLAGS.  If a Makefile defines additional CFLAGS they will then be
passed to the C++ compiler.  Which creates problems with flags
that should only be used by the C compiler in Makefiles that
deal with both C and C++ (like Mesa).

Fix this situation by not initialising CXXFLAGS with CFLAGS.
No problems building src/xenocara with the following diff:

Index: share/mk/bsd.lib.mk
===================================================================
RCS file: /cvs/src/share/mk/bsd.lib.mk,v
retrieving revision 1.71
diff -u -p -r1.71 bsd.lib.mk
--- share/mk/bsd.lib.mk 15 Oct 2013 22:40:00 -0000      1.71
+++ share/mk/bsd.lib.mk 16 Jul 2014 13:46:45 -0000
@@ -30,6 +30,7 @@ SHLIB_MINOR=${minor}
 
 .if defined(NOPIE)
 CFLAGS+=       ${NOPIE_FLAGS}
+CXXFLAGS+=     ${NOPIE_FLAGS}
 AFLAGS+=       ${NOPIE_FLAGS}
 .endif
 
Index: share/mk/bsd.prog.mk
===================================================================
RCS file: /cvs/src/share/mk/bsd.prog.mk,v
retrieving revision 1.63
diff -u -p -r1.63 bsd.prog.mk
--- share/mk/bsd.prog.mk        23 Apr 2014 18:24:23 -0000      1.63
+++ share/mk/bsd.prog.mk        16 Jul 2014 13:47:48 -0000
@@ -12,6 +12,7 @@
 
 .if defined(LDSTATIC) || defined(NOPIE)
 CFLAGS+=       ${NOPIE_FLAGS}
+CXXFLAGS+=     ${NOPIE_FLAGS}
 AFLAGS+=       ${NOPIE_FLAGS}
 LDFLAGS+=      ${NOPIE_LDFLAGS}
 .endif
Index: share/mk/sys.mk
===================================================================
RCS file: /cvs/src/share/mk/sys.mk,v
retrieving revision 1.69
diff -u -p -r1.69 sys.mk
--- share/mk/sys.mk     15 Jul 2014 21:59:16 -0000      1.69
+++ share/mk/sys.mk     16 Jul 2014 13:47:11 -0000
@@ -39,7 +39,7 @@ LINK.c?=      ${CC} ${CFLAGS} ${CPPFLAGS} ${L
 HOSTCC?=       cc
 
 CXX?=          c++
-CXXFLAGS?=     ${CFLAGS}
+CXXFLAGS?=     -O2 ${PIPE} ${DEBUG}
 COMPILE.cc?=   ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c
 LINK.cc?=      ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}
 
Index: gnu/lib/libstdc++-v3/Makefile
===================================================================
RCS file: /cvs/src/gnu/lib/libstdc++-v3/Makefile,v
retrieving revision 1.7
diff -u -p -r1.7 Makefile
--- gnu/lib/libstdc++-v3/Makefile       21 Jun 2013 17:07:30 -0000      1.7
+++ gnu/lib/libstdc++-v3/Makefile       17 Jul 2014 06:28:16 -0000
@@ -7,13 +7,14 @@ GCC_TARGET=   ${MACHINE_ARCH}-unknown-open
 
 LIB=           stdc++
 
-CFLAGS+=       -DIN_GLIBCPP_V3 -DHAVE_CONFIG_H
+CPPFLAGS+=     -DIN_GLIBCPP_V3 -DHAVE_CONFIG_H
 .if ${MACHINE_ARCH} == "arm"
-CFLAGS+=       -D_GLIBCXX_SJLJ_EXCEPTIONS=1
+CPPFLAGS+=     -D_GLIBCXX_SJLJ_EXCEPTIONS=1
 .endif
-CFLAGS+=       -I${.CURDIR} -I${SUPDIR} -I${GCCDIR} -I${SRCDIR}/include
-CFLAGS+=       -I${GCCLIB}/include -I${SRCDIR}/include 
-I${.CURDIR}/../libiberty/include -I.
+CPPFLAGS+=     -I${.CURDIR} -I${SUPDIR} -I${GCCDIR} -I${SRCDIR}/include
+CPPFLAGS+=     -I${GCCLIB}/include -I${SRCDIR}/include 
-I${.CURDIR}/../libiberty/include -I.
 CFLAGS+=       -frandom-seed=RepeatabilityConsideredGood
+CXXFLAGS+=     -frandom-seed=RepeatabilityConsideredGood
 CXXFLAGS+=     -fno-implicit-templates -ffunction-sections -fdata-sections \
                -Wno-deprecated
 
Index: gnu/lib/libstdc++-v3/Makefile.common
===================================================================
RCS file: /cvs/src/gnu/lib/libstdc++-v3/Makefile.common,v
retrieving revision 1.3
diff -u -p -r1.3 Makefile.common
--- gnu/lib/libstdc++-v3/Makefile.common        16 May 2010 13:22:58 -0000      
1.3
+++ gnu/lib/libstdc++-v3/Makefile.common        17 Jul 2014 06:57:22 -0000
@@ -10,10 +10,11 @@ SUPDIR=     ${SRCDIR}/libsupc++
        ${SRCDIR}/include ${SUPDIR} ${.CURDIR}/../libiberty/src \
        ${.CURDIR}/../libstdc++-v3/obj
 
-CFLAGS+=       -DIN_GLIBCPP_V3 -DHAVE_CONFIG_H
-CFLAGS+=       -I${.CURDIR}/../libstdc++-v3/ -I${SUPDIR} -I${GCCDIR} 
-I${SRCDIR}/include
-CFLAGS+=       -I${GCCLIB}/include -I${SRCDIR}/include 
-I${.CURDIR}/../libiberty/include -I.
+CPPFLAGS+=     -DIN_GLIBCPP_V3 -DHAVE_CONFIG_H
+CPPFLAGS+=     -I${.CURDIR}/../libstdc++-v3/ -I${SUPDIR} -I${GCCDIR} 
-I${SRCDIR}/include
+CPPFLAGS+=     -I${GCCLIB}/include -I${SRCDIR}/include 
-I${.CURDIR}/../libiberty/include -I.
 CFLAGS+=       -frandom-seed=RepeatabilityConsideredGood
+CXXFLAGS+=     -frandom-seed=RepeatabilityConsideredGood
 CXXFLAGS+=     -fno-implicit-templates -ffunction-sections -fdata-sections \
                -Wno-deprecated
 
Index: gnu/lib/libsupc++-v3/Makefile
===================================================================
RCS file: /cvs/src/gnu/lib/libsupc++-v3/Makefile,v
retrieving revision 1.3
diff -u -p -r1.3 Makefile
--- gnu/lib/libsupc++-v3/Makefile       18 Jul 2011 18:32:47 -0000      1.3
+++ gnu/lib/libsupc++-v3/Makefile       17 Jul 2014 06:56:26 -0000
@@ -9,11 +9,12 @@ LIB=  supc++
 SRCS=  ${SUPSRCS}
 
 .if ${MACHINE_ARCH} == "arm"
-CFLAGS+=       -D_GLIBCXX_SJLJ_EXCEPTIONS=1
+CPPFLAGS+=     -D_GLIBCXX_SJLJ_EXCEPTIONS=1
 .endif
 
 # Build a standard .a lib with PIC objects
 NOPIC=
 CFLAGS+= ${PICFLAG}
+CXXFLAGS+= ${PICFLAG}
 
 .include <bsd.lib.mk>

Reply via email to