[Bug 263176] devel/heimdall: fix build with libc++ 14

From: <bugzilla-noreply_at_freebsd.org>
Date: Sat, 09 Apr 2022 11:26:59 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=263176

            Bug ID: 263176
           Summary: devel/heimdall: fix build with libc++ 14
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: Individual Port(s)
          Assignee: ehaupt@FreeBSD.org
          Reporter: dim@FreeBSD.org
             Flags: maintainer-feedback?(ehaupt@FreeBSD.org)
          Assignee: ehaupt@FreeBSD.org

During an exp-run for llvm 14 (see bug 261742), it turned out that
devel/heimdall fails to build with libc++ 14:

In file included from
/wrkdirs/usr/ports/devel/heimdall/work/Heimdall-1.4.2/heimdall/source/HelpAction.cpp:24:
In file included from
/wrkdirs/usr/ports/devel/heimdall/work/Heimdall-1.4.2/heimdall/source/Interface.h:25:
In file included from /usr/include/c++/v1/map:535:
In file included from /usr/include/c++/v1/__node_handle:63:
In file included from /usr/include/c++/v1/memory:819:
In file included from
/usr/include/c++/v1/__memory/ranges_uninitialized_algorithms.h:22:
In file included from
/usr/include/c++/v1/__memory/uninitialized_algorithms.h:17:
In file included from /usr/include/c++/v1/iterator:591:
In file included from /usr/include/c++/v1/__iterator/common_iterator.h:22:
In file included from /usr/include/c++/v1/variant:204:
/usr/include/c++/v1/__functional/hash.h:174:12: error: no matching constructor
for initialization of 'pair<unsigned long, unsigned long>'
    return pair<_Size, _Size>(__a + __z, __b + __c);
           ^                  ~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/v1/__functional/hash.h:182:12: note: in instantiation of
member function 'std::__murmur2_or_cityhash<unsigned long,
64>::__weak_hash_len_32_with_seeds' requested here
    return __weak_hash_len_32_with_seeds(__loadword<_Size>(__s),
           ^
/usr/include/c++/v1/__functional/hash.h:241:28: note: in instantiation of
member function 'std::__murmur2_or_cityhash<unsigned long,
64>::__weak_hash_len_32_with_seeds' requested here
  pair<_Size, _Size> __v = __weak_hash_len_32_with_seeds(__s + __len - 64,
__len, __z);
                           ^
/usr/include/c++/v1/__functional/hash.h:344:16: note: in instantiation of
member function 'std::__murmur2_or_cityhash<unsigned long, 64>::operator()'
requested here
        return __murmur2_or_cityhash<size_t>()(&__u, sizeof(__u));
               ^
/usr/include/c++/v1/__functional/hash.h:418:20: note: in instantiation of
member function 'std::__scalar_hash<std::_PairT, 2>::operator()' requested here
    return _HashT()(__p);
                   ^
/usr/include/c++/v1/__utility/pair.h:157:14: note: candidate template ignored:
requirement '_CheckArgsDep<true>::__enable_explicit()' was not satisfied [with
_Dummy = true]
    explicit pair(_T1 const& __t1, _T2 const& __t2)
             ^
[... much more of this ...]

This is because Heimdall.h defines nullptr as a macro with value 0, which isn't
compatible with C++11 or later.

-- 
You are receiving this mail because:
You are the assignee for the bug.