From 681ab3448b51a925c30d86c9ec698f82f22c4137 Mon Sep 17 00:00:00 2001 From: "Jason E. Hale" Date: Sun, 3 Nov 2024 12:39:32 -0500 Subject: [PATCH] science/py-hoomd-blue: Fix build with LLVM 19 Approved by: portmgr (blanket) MFH: 2024Q4 --- science/py-hoomd-blue/Makefile | 2 -- .../files/patch-hoomd_GPUFlags.h | 18 +++++++++++ ...rn_nano-signal-slot_nano__signal__slot.hpp | 30 +++++++++++++++++++ 3 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 science/py-hoomd-blue/files/patch-hoomd_GPUFlags.h create mode 100644 science/py-hoomd-blue/files/patch-hoomd_extern_nano-signal-slot_nano__signal__slot.hpp diff --git a/science/py-hoomd-blue/Makefile b/science/py-hoomd-blue/Makefile index e7929a59883d..13a2b9fe990f 100644 --- a/science/py-hoomd-blue/Makefile +++ b/science/py-hoomd-blue/Makefile @@ -12,8 +12,6 @@ WWW= https://glotzerlab.engin.umich.edu/hoomd-blue/ \ LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE -BROKEN_FreeBSD_15= compilation fails with clang-19, see https://github.com/glotzerlab/hoomd-blue/issues/1924 - BUILD_DEPENDS= pybind11>0:devel/pybind11 USES= cmake:testing compiler:c++17-lang eigen:3 localbase:ldflags python shebangfix # see https://github.com/glotzerlab/hoomd-blue/issues/1204 diff --git a/science/py-hoomd-blue/files/patch-hoomd_GPUFlags.h b/science/py-hoomd-blue/files/patch-hoomd_GPUFlags.h new file mode 100644 index 000000000000..9b655f55b4af --- /dev/null +++ b/science/py-hoomd-blue/files/patch-hoomd_GPUFlags.h @@ -0,0 +1,18 @@ +Fix build with LLVM 19 + +/wrkdirs/usr/ports/science/py-hoomd-blue/work/hoomd-blue-4.9.0/hoomd/GPUFlags.h:160:27: +error: reference to non-static member function must be called + 160 | this->resetFlags(from.readFlags); + | ~~~~~^~~~~~~~~ + +--- hoomd/GPUFlags.h.orig 2024-10-31 16:09:15 UTC ++++ hoomd/GPUFlags.h +@@ -157,7 +157,7 @@ GPUFlags::GPUFlags(const GPUFlags& from) + memclear(); + + // copy over the data to the new GPUFlags +- this->resetFlags(from.readFlags); ++ this->resetFlags(from.readFlags()); + } + + template GPUFlags& GPUFlags::operator=(const GPUFlags& rhs) diff --git a/science/py-hoomd-blue/files/patch-hoomd_extern_nano-signal-slot_nano__signal__slot.hpp b/science/py-hoomd-blue/files/patch-hoomd_extern_nano-signal-slot_nano__signal__slot.hpp new file mode 100644 index 000000000000..cd3fce241f6d --- /dev/null +++ b/science/py-hoomd-blue/files/patch-hoomd_extern_nano-signal-slot_nano__signal__slot.hpp @@ -0,0 +1,30 @@ +Fix build with LLVM 19 + +/wrkdirs/usr/ports/science/py-hoomd-blue/work/hoomd-blue-4.9.0/hoomd/extern/nano-signal-slot/nano_signal_slot.hpp:46:45: +error: a template argument list is expected after a name prefixed by the template keyword [-Wmissing-template-arg-list-after-template-kw] + 46 | Observer::insert(Delegate::template bind (instance), this); + | ^ +/wrkdirs/usr/ports/science/py-hoomd-blue/work/hoomd-blue-4.9.0/hoomd/extern/nano-signal-slot/nano_signal_slot.hpp:87:45: +error: a template argument list is expected after a name prefixed by the template keyword [-Wmissing-template-arg-list-after-template-kw] + 87 | Observer::remove(Delegate::template bind (instance), this); + +--- hoomd/extern/nano-signal-slot/nano_signal_slot.hpp.orig 2016-07-13 20:06:52 UTC ++++ hoomd/extern/nano-signal-slot/nano_signal_slot.hpp +@@ -43,7 +43,7 @@ class Signal : private Observer + template + void connect(L* instance) + { +- Observer::insert(Delegate::template bind (instance), this); ++ Observer::insert(Delegate::bind (instance), this); + } + template + void connect(L& instance) +@@ -84,7 +84,7 @@ class Signal : private Observer + template + void disconnect(L* instance) + { +- Observer::remove(Delegate::template bind (instance), this); ++ Observer::remove(Delegate::bind (instance), this); + } + template + void disconnect(L& instance)