On Fri, Jul 18, 2014 at 12:10:25AM +1000, Jonathan Gray wrote: > 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:
Here is the diff again. If there are concerns on the ports side could someone doing ports bulk builds give this a try? 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.66 diff -u -p -r1.66 bsd.prog.mk --- share/mk/bsd.prog.mk 23 Dec 2014 16:35:53 -0000 1.66 +++ share/mk/bsd.prog.mk 28 Dec 2014 07:15:08 -0000 @@ -12,6 +12,7 @@ .if (defined(LDSTATIC) && !defined(STATICPIE)) || 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.71 diff -u -p -r1.71 sys.mk --- share/mk/sys.mk 1 Jan 2015 15:50:27 -0000 1.71 +++ share/mk/sys.mk 4 Jan 2015 13:18:26 -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>