git: 97936b3d67af - main - devel/heimdall: stop attempting to define nullptr

From: Dimitry Andric <dim_at_FreeBSD.org>
Date: Tue, 26 Apr 2022 19:13:16 UTC
The branch main has been updated by dim (src committer):

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

commit 97936b3d67af0be32750eb83edc3170bd01f9755
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2022-04-09 11:24:31 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2022-04-26 19:11:50 +0000

    devel/heimdall: stop attempting to define nullptr
    
    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.
    
    PR:             263176
    Approved by:    ehaupt (maintainer)
    MFH:            2022Q2
---
 devel/heimdall/files/patch-heimdall_source_Heimdall.h | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/devel/heimdall/files/patch-heimdall_source_Heimdall.h b/devel/heimdall/files/patch-heimdall_source_Heimdall.h
new file mode 100644
index 000000000000..c20fccf6aa43
--- /dev/null
+++ b/devel/heimdall/files/patch-heimdall_source_Heimdall.h
@@ -0,0 +1,15 @@
+--- heimdall/source/Heimdall.h.orig	2017-05-11 18:34:25 UTC
++++ heimdall/source/Heimdall.h
+@@ -54,12 +54,4 @@
+ 
+ #endif
+ 
+-#if (!(defined _MSC_VER) || (_MSC_VER < 1700))
+-
+-#ifndef nullptr
+-#define nullptr 0
+-#endif
+-
+-#endif
+-
+ #endif