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.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.