Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 16 Feb 2026 19:58:55 +0000
From:      Dimitry Andric <dim@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: e4b498d8a085 - main - devel/ispc: fix build with libc++ >= 20
Message-ID:  <699376ff.425e8.5e6c2ff1@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by dim:

URL: https://cgit.FreeBSD.org/ports/commit/?id=e4b498d8a085a273bd7a18f1edba01d2db3508b2

commit e4b498d8a085a273bd7a18f1edba01d2db3508b2
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2026-02-13 12:49:34 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2026-02-16 19:56:51 +0000

    devel/ispc: fix build with libc++ >= 20
    
    With libc++ 20 or higher devel/ispc fails to build, with errors similar
    to:
    
        /wrkdirs/usr/ports/devel/ispc/work/ispc-1.30.0/src/util.cpp:51:11: error: '__libcpp_verbose_abort' is missing exception specification 'noexcept'
           51 | void std::__libcpp_verbose_abort(char const *format, ...)
              |           ^
              |                                                           noexcept
        /usr/include/c++/v1/__verbose_abort:24:28: note: previous declaration is here
           24 |     __printf__, 1, 2) void __libcpp_verbose_abort(const char* __format, ...) _NOEXCEPT;
              |                            ^
    
    This is because ispc attemps to override __libcpp_verbose_abort(), which
    is an internal libc++ function, but it misses a noexcept specification.
    
    However, overriding __libcpp_verbose_abort() is only necessary on older
    versions of macOS. Therefore, exclude the whole #if block if the
    operating system is not macOS.
    
    PR:             293163
    Approved by:    yuri (maintainer)
    MFH:            2026Q1
---
 devel/ispc/files/patch-src_util.cpp | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/devel/ispc/files/patch-src_util.cpp b/devel/ispc/files/patch-src_util.cpp
new file mode 100644
index 000000000000..c5c951950517
--- /dev/null
+++ b/devel/ispc/files/patch-src_util.cpp
@@ -0,0 +1,20 @@
+--- src/util.cpp.orig	2026-02-04 04:33:16 UTC
++++ src/util.cpp
+@@ -44,7 +44,7 @@
+ #include <llvm/Support/Path.h>
+ 
+ #if ISPC_LLVM_VERSION < ISPC_LLVM_21_0
+-#ifdef _LIBCPP_VERSION
++#if defined(ISPC_HOST_IS_APPLE) && defined(_LIBCPP_VERSION)
+ // Provide own definition of std::__libcpp_verbose_abort to avoid missing symbols error on macOS with old
+ // system libc++.1.dylib. The symbol is there for macOS 13 Ventura and later, but not macOS 12 and earlier.
+ // See #3071 for more details.
+@@ -60,7 +60,7 @@ void std::__libcpp_verbose_abort(char const *format, .
+ 
+     abort();
+ }
+-#endif // _LIBCPP_VERSION
++#endif // ISPC_HOST_IS_APPLE && _LIBCPP_VERSION
+ #endif // ISPC_LLVM_VERSION < ISPC_LLVM_21_0
+ 
+ using namespace ispc;


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?699376ff.425e8.5e6c2ff1>