From 442295c1fe84b4dc3e4834acdbf4ede75affe3c4 Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Wed, 30 Nov 2022 14:50:35 -0800 Subject: [PATCH] Silence GCC warnings when using libc++ headers. GCC 12 raises warnings about literal operator suffixes not preceded by '_' in libc++ headers such as as it doesn't recognize libc++ headers being an implementation of the standard. GCC 12 also warns about clang-specific pragmas in . Disabling these warnings globally for all C++ code is not ideal, but is a better option than patching libc++ headers to ignore these warnings. Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D37530 --- share/mk/bsd.sys.mk | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/share/mk/bsd.sys.mk b/share/mk/bsd.sys.mk index 18aecfbcc11..42290e96f85 100644 --- a/share/mk/bsd.sys.mk +++ b/share/mk/bsd.sys.mk @@ -217,6 +217,14 @@ CWARNFLAGS+= -Wno-error=overflow .endif .endif +# GCC 12.1.0 +.if ${COMPILER_VERSION} >= 120100 +# These warnings are raised by headers in libc++ so are disabled +# globally for all C++ +CXXWARNFLAGS+= -Wno-literal-suffix \ + -Wno-error=unknown-pragmas +.endif + # GCC produces false positives for functions that switch on an # enum (GCC bug 87950) CWARNFLAGS+= -Wno-return-type