Re: HEADS UP: plan to switch many ports over to GCC 12 soon
Greg Troxel <[email protected]>
| Newsgroups | gmane.os.netbsd.devel.toolchain |
|---|---|
| Message-ID | <[email protected]> |
Christoph Badura <[email protected]> writes: > For me gcc/usr.bin/host-libcpp failed to build on macOS 12.7. > > Stuff like: > src/external/gpl3/gcc/dist/libcpp/include/line-map.h:1677:44: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions] > src/external/gpl3/gcc/dist/libcpp/include/cpplib.h:319:13: warning: commas at the end of enumerator lists are a C++11 extension [-Wc++11-extensions] > src/external/gpl3/gcc/dist/libcpp/include/cpplib.h:1144:6: warning: scoped enumerations are a C++11 extension [-Wc++11-extensions] > etc. > > A patch similar what David Gutteridge did on r1.113 of src/tools/gcc/Makefile > fixed that. > > diff --git a/external/gpl3/gcc/usr.bin/host-libcpp/Makefile b/external/gpl3/gcc/usr.bin/host-libcpp/Makefile > index 77ea9e0b2ba..e7968c85f55 100644 > --- a/external/gpl3/gcc/usr.bin/host-libcpp/Makefile > +++ b/external/gpl3/gcc/usr.bin/host-libcpp/Makefile > @@ -1,5 +1,7 @@ > # $NetBSD: Makefile,v 1.6 2023/05/19 10:42:34 lukem Exp $ > > +.include <bsd.init.mk> > + > BUILD_ENV= \ > AR=${HOST_AR:Q} \ > AWK=${TOOL_AWK:Q} \ > @@ -19,6 +21,12 @@ BUILD_ENV= \ > RANLIB=${HOST_RANLIB:Q} \ > YACC=${YACC:Q} > > +# Force C++11 so builds succeed on hosts where this isn't the compiler > +# default, e.g., NetBSD 8.x with GCC 5.5. > +.if ${HAVE_GCC} > 10 > +HOST_CXXFLAGS+= -std=c++11 > +.endif > + > GMAKE_J_ARGS?= ${MAKEFLAGS:[*]:M*-j*:C/(^|.* )(-j ?[0-9][0-9]*).*/\2/W} > BUILD_COMMAND= /usr/bin/env -i ${BUILD_ENV} ${TOOL_GMAKE} ${GMAKE_J_ARGS} -e > > I'll commit that if there are no objections. I'm not really comfortable with this being conditional. If the program is in c++11, it makes sense to just always pass that -std. If the default is c++11, it's a noop. If the default is c++17, it asks that the sources be treated as c++11 and thus would catch if anyone added a c++17ism via an edit.