git: dd89b97ac0fc - main - devel/flang-clang: fix build with libc++ 14
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 26 Apr 2022 19:15:48 UTC
The branch main has been updated by dim (src committer): URL: https://cgit.FreeBSD.org/ports/commit/?id=dd89b97ac0fccbb4486ca60e2ed33f8d434719ed commit dd89b97ac0fccbb4486ca60e2ed33f8d434719ed Author: Dimitry Andric <dim@FreeBSD.org> AuthorDate: 2022-04-09 15:12:07 +0000 Commit: Dimitry Andric <dim@FreeBSD.org> CommitDate: 2022-04-26 19:15:37 +0000 devel/flang-clang: fix build with libc++ 14 During an exp-run for llvm 14 (see bug 261742), it turned out that devel/flang-clang fails to build with libc++ 14: -- Performing Test LLVM_NO_OLD_LIBSTDCXX - Failed CMake Error at /usr/local/llvm70/lib/cmake/llvm/CheckCompilerVersion.cmake:38 (message): Host Clang must be able to find libstdc++4.8 or newer! Call Stack (most recent call first): /usr/local/llvm70/lib/cmake/llvm/HandleLLVMOptions.cmake:9 (include) CMakeLists.txt:95 (include) -- Configuring incomplete, errors occurred! See also "/wrkdirs/usr/ports/devel/flang-clang/work/.build/CMakeFiles/CMakeOutput.log". See also "/wrkdirs/usr/ports/devel/flang-clang/work/.build/CMakeFiles/CMakeError.log". *** Error code 1 This is because libc++ 14 no longer builds if the compiler doesn't support __builtin_is_constant_evaluated(). Similar to other ports, add a wrapper to make it work. PR: 263179 Approved by: maintainer timeout (2 weeks) MFH: 2022Q2 --- devel/flang-clang/Makefile | 3 +++ devel/flang-clang/files/builtin_is_constant_evaluated.h | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/devel/flang-clang/Makefile b/devel/flang-clang/Makefile index 79ebf1af1de9..01cd5778a93a 100644 --- a/devel/flang-clang/Makefile +++ b/devel/flang-clang/Makefile @@ -41,6 +41,9 @@ CMAKE_INSTALL_PREFIX= ${PREFIX}/flang CC= ${LOCALBASE}/llvm${LLVM_VER}/bin/clang CXX= ${LOCALBASE}/llvm${LLVM_VER}/bin/clang++ +# Support __builtin_is_constant_evaluated(), for libc++ >= 14 +CXXFLAGS+= -include ${FILESDIR}/builtin_is_constant_evaluated.h + post-patch: @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' ${WRKSRC}/lib/Driver/ToolChains/FreeBSD.cpp diff --git a/devel/flang-clang/files/builtin_is_constant_evaluated.h b/devel/flang-clang/files/builtin_is_constant_evaluated.h new file mode 100644 index 000000000000..724481d30d8f --- /dev/null +++ b/devel/flang-clang/files/builtin_is_constant_evaluated.h @@ -0,0 +1,4 @@ +#ifndef DEFINED___BUILTIN_IS_CONSTANT_EVALUATED +#define DEFINED___BUILTIN_IS_CONSTANT_EVALUATED +constexpr bool __builtin_is_constant_evaluated() { return false; } +#endif