From a34d2231fa38a5e440ecdc94dbca3b3deb5a7f50 Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Thu, 24 Apr 2025 14:03:38 +0200 Subject: [PATCH] Partially revert 6527682ab705 for llvm-based projects Upstream llvm compiles most of their subprojects with -std=c++17 explicitly, not -std=gnu++17. In gnu++17 mode, both clang and gcc define the macro 'i386' on i386, which clashes with a namespace identifier in contrib/llvm-project/llvm/include/llvm/ExecutionEngine/JITLink/i386.h. Since the default after 6527682ab705 is now CXXSTD=gnu++17, explicitly set CXXSTD=c++17 for lib/clang, lib/libclang_rt and lib/libomp. --- lib/clang/llvm.build.mk | 1 + lib/libclang_rt/Makefile.inc | 1 + lib/libomp/Makefile | 1 + 3 files changed, 3 insertions(+) diff --git a/lib/clang/llvm.build.mk b/lib/clang/llvm.build.mk index c731deba897..e88b2ff1033 100644 --- a/lib/clang/llvm.build.mk +++ b/lib/clang/llvm.build.mk @@ -119,6 +119,7 @@ LDFLAGS+= -Wl,-m,elf64lriscv_fbsd .endif .endif +CXXSTD= c++17 CXXFLAGS+= -fno-exceptions CXXFLAGS+= -fno-rtti .if ${.MAKE.OS} == "FreeBSD" || !defined(BOOTSTRAPPING) diff --git a/lib/libclang_rt/Makefile.inc b/lib/libclang_rt/Makefile.inc index e7db5a46966..c472e8b741b 100644 --- a/lib/libclang_rt/Makefile.inc +++ b/lib/libclang_rt/Makefile.inc @@ -33,3 +33,4 @@ CXXFLAGS+= -fvisibility-inlines-hidden CXXFLAGS+= -fvisibility=hidden CFLAGS+= -I${CRTSRC}/include CFLAGS+= -I${CRTSRC}/lib +CXXSTD= c++17 diff --git a/lib/libomp/Makefile b/lib/libomp/Makefile index f1513e70f3f..6c14c7d2107 100644 --- a/lib/libomp/Makefile +++ b/lib/libomp/Makefile @@ -57,6 +57,7 @@ CFLAGS+= -fdata-sections CXXFLAGS+= -fvisibility-inlines-hidden CXXFLAGS+= -fno-exceptions CXXFLAGS+= -fno-rtti +CXXSTD= c++17 .if ${COMPILER_TYPE} == "clang" .if ${MACHINE_CPUARCH} == "i386"