Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 25 Feb 2026 21:19:01 +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: c6266b20c47f - main - cad/ngspice_rework: fix build with libc++ 21
Message-ID:  <699f6745.30961.318693a7@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=c6266b20c47f5cd2194b16d7f63781fb394caa0b

commit c6266b20c47f5cd2194b16d7f63781fb394caa0b
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2026-02-25 20:09:06 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2026-02-25 21:18:53 +0000

    cad/ngspice_rework: fix build with libc++ 21
    
    With libc++ 21 cad/ngspice_rework fails to build, with errors similar to:
    
        In file included from hicumL2temp.cpp:11:
        ../../../../src/include/cppduals/duals/dual:444:8: error: 'is_compound' cannot be specialized: Users are not allowed to specialize this standard library entity [-Winvalid-specialization]
          444 | struct is_compound<duals::dual<T>> : true_type {};
              |        ^
        /usr/include/c++/v1/__type_traits/is_compound.h:25:8: note: marked '_Clang::no_specializations' here
           25 | struct _LIBCPP_NO_SPECIALIZATIONS is_compound : _BoolConstant<__is_compound(_Tp)> {};
              |        ^
        /usr/include/c++/v1/__config:1167:9: note: expanded from macro '_LIBCPP_NO_SPECIALIZATIONS'
         1167 |       [[_Clang::__no_specializations__("Users are not allowed to specialize this standard library entity")]]
              |         ^
    
    This is because libc++ 21 no longer allows specializing a number of
    standard library entities. Delete out the specialization to make the
    build complete.
    
    PR:             293447
    Approved by:    kevinz5000@gmail.com (maintainer)
    MFH:            2026Q1
---
 .../files/patch-src_include_cppduals_duals_dual             | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/cad/ngspice_rework/files/patch-src_include_cppduals_duals_dual b/cad/ngspice_rework/files/patch-src_include_cppduals_duals_dual
new file mode 100644
index 000000000000..c232dfca6751
--- /dev/null
+++ b/cad/ngspice_rework/files/patch-src_include_cppduals_duals_dual
@@ -0,0 +1,13 @@
+--- src/include/cppduals/duals/dual.orig	2025-01-11 12:35:18 UTC
++++ src/include/cppduals/duals/dual
+@@ -439,10 +439,6 @@ struct is_arithmetic<duals::dual<T>> : is_arithmetic<T
+ 
+ #endif // CPPDUALS_ENABLE_IS_ARITHMETIC
+ 
+-/// Duals are compound types.
+-template <class T>
+-struct is_compound<duals::dual<T>> : true_type {};
+-
+ // Modification of std::numeric_limits<> per
+ // C++03 17.4.3.1/1, and C++11 18.3.2.3/1.
+ template <class T>


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?699f6745.30961.318693a7>