git: 22f31cfa3606 - main - misc/lbann: Fix build with protobuf 22+
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 14 Dec 2023 17:03:37 UTC
The branch main has been updated by sunpoet: URL: https://cgit.FreeBSD.org/ports/commit/?id=22f31cfa360640812df820452e62c8de2e6cf795 commit 22f31cfa360640812df820452e62c8de2e6cf795 Author: Po-Chuan Hsieh <sunpoet@FreeBSD.org> AuthorDate: 2023-12-14 16:22:39 +0000 Commit: Po-Chuan Hsieh <sunpoet@FreeBSD.org> CommitDate: 2023-12-14 17:03:06 +0000 misc/lbann: Fix build with protobuf 22+ - While I'm here, remove patch-cmake_modules_SetupProtobuf.cmake which is no longer needed now --- misc/lbann/Makefile | 5 +- .../files/patch-cmake_modules_SetupProtobuf.cmake | 13 ---- misc/lbann/files/patch-protobuf | 78 ++++++++++++++++++++++ 3 files changed, 81 insertions(+), 15 deletions(-) diff --git a/misc/lbann/Makefile b/misc/lbann/Makefile index 1f145f969d1c..86a29e0283a7 100644 --- a/misc/lbann/Makefile +++ b/misc/lbann/Makefile @@ -21,7 +21,7 @@ LIB_DEPENDS= libconduit.so:science/conduit \ libprotobuf.so:devel/protobuf \ libsiloh5.so:science/silo -USES= cmake:testing compiler:c++17-lang localbase pkgconfig +USES= cmake:testing compiler:c++17-lang localbase:ldflags pkgconfig USE_GITHUB= yes GH_ACCOUNT= LLNL @@ -41,7 +41,8 @@ CMAKE_OFF= LBANN_WITH_CNPY \ CMAKE_ON= LBANN_USE_PROTOBUF_MODULE CMAKE_TESTING_ON= LBANN_WITH_UNIT_TESTING # requires MPI cluster -LDFLAGS+= -lexecinfo +LDFLAGS+= -labsl_hash -labsl_log_internal_message -labsl_log_internal_nullguard -labsl_spinlock_wait -lexecinfo +USE_CXXSTD= c++17 OPTIONS_SINGLE= MPI OPTIONS_SINGLE_MPI= MPICH OPENMPI diff --git a/misc/lbann/files/patch-cmake_modules_SetupProtobuf.cmake b/misc/lbann/files/patch-cmake_modules_SetupProtobuf.cmake deleted file mode 100644 index 7ad9e788ca42..000000000000 --- a/misc/lbann/files/patch-cmake_modules_SetupProtobuf.cmake +++ /dev/null @@ -1,13 +0,0 @@ -- https://gitlab.kitware.com/cmake/cmake/-/issues/24218 - ---- cmake/modules/SetupProtobuf.cmake.orig 2022-12-02 19:45:09 UTC -+++ cmake/modules/SetupProtobuf.cmake -@@ -65,7 +65,7 @@ else () - PATH_SUFFIXES lib64/cmake/protobuf lib/cmake/protobuf - NO_DEFAULT_PATH) - if(NOT Protobuf_FOUND) -- find_package(Protobuf "${PROTOBUF_MIN_VERSION}" CONFIG QUIET REQUIRED) -+ find_package(Protobuf "${PROTOBUF_MIN_VERSION}" QUIET REQUIRED) - endif () - message(STATUS "Found Protobuf: ${Protobuf_DIR}") - endif () diff --git a/misc/lbann/files/patch-protobuf b/misc/lbann/files/patch-protobuf new file mode 100644 index 000000000000..fae535a200d7 --- /dev/null +++ b/misc/lbann/files/patch-protobuf @@ -0,0 +1,78 @@ +--- src/utils/protobuf.cpp.orig 2022-11-12 00:17:51 UTC ++++ src/utils/protobuf.cpp +@@ -41,9 +41,8 @@ + // should be refactored to use the specialized "zero-copy" streams + // that ship with protobuf. + +-namespace pb = google::protobuf; +-static pb::FieldDescriptor const* +-get_oneof_field_descriptor(pb::Message const& msg, ++static google::protobuf::FieldDescriptor const* ++get_oneof_field_descriptor(google::protobuf::Message const& msg, + std::string const& oneof_name) + { + auto oneof_handle = msg.GetDescriptor()->FindOneofByName(oneof_name); +@@ -52,14 +51,14 @@ get_oneof_field_descriptor(pb::Message const& msg, + return msg.GetReflection()->GetOneofFieldDescriptor(msg, oneof_handle); + } + +-bool lbann::protobuf::has_oneof(pb::Message const& msg, ++bool lbann::protobuf::has_oneof(google::protobuf::Message const& msg, + std::string const& oneof_name) + { + return (bool)get_oneof_field_descriptor(msg, oneof_name); + } + +-pb::Message const& +-lbann::protobuf::get_oneof_message(pb::Message const& msg, ++google::protobuf::Message const& ++lbann::protobuf::get_oneof_message(google::protobuf::Message const& msg, + std::string const& oneof_name) + { + auto oneof_field = get_oneof_field_descriptor(msg, oneof_name); +@@ -71,7 +70,7 @@ lbann::protobuf::get_oneof_message(pb::Message const& + "}\n"); + } + +- if (oneof_field->type() != pb::FieldDescriptor::TYPE_MESSAGE) { ++ if (oneof_field->type() != google::protobuf::FieldDescriptor::TYPE_MESSAGE) { + LBANN_ERROR("Oneof \"", + oneof_name, + "\" has field \"", +@@ -105,15 +104,15 @@ static std::string remove_scope_from_type(std::string + return type.substr(pos + 1); + } + +-std::string lbann::protobuf::message_type(pb::Message const& msg) ++std::string lbann::protobuf::message_type(google::protobuf::Message const& msg) + { + return msg.GetDescriptor()->name(); + } + +-std::string lbann::protobuf::message_type(pb::Any const& msg) ++std::string lbann::protobuf::message_type(google::protobuf::Any const& msg) + { + std::string full_type; +- pb::Any::ParseAnyTypeUrl(msg.type_url(), &full_type); ++ google::protobuf::Any::ParseAnyTypeUrl(msg.type_url(), &full_type); + return remove_scope_from_type(full_type); + } + +@@ -171,7 +170,7 @@ void lbann::protobuf::text::fill(std::istream& is, + void lbann::protobuf::text::fill(std::string const& str, + google::protobuf::Message& msg) + { +- if (!pb::TextFormat::ParseFromString(str, &msg)) ++ if (!google::protobuf::TextFormat::ParseFromString(str, &msg)) + LBANN_ERROR("Unable to parse prototext from string."); + } + +@@ -187,7 +186,7 @@ void lbann::protobuf::text::write(std::ostream& os, + google::protobuf::Message const& msg) + { + google::protobuf::io::OstreamOutputStream output(&os); +- if (!pb::TextFormat::Print(msg, &output)) ++ if (!google::protobuf::TextFormat::Print(msg, &output)) + LBANN_ERROR("Failed to print prototext to stream."); + } +