1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-05 06:27:37 +00:00

net/mercury: New port: C library for implementing RPC, optimized for HPC

This commit is contained in:
Yuri Victorovich 2023-08-03 23:49:24 -07:00
parent 4bc6f9f4dc
commit 6672a6559d
6 changed files with 126 additions and 0 deletions

View File

@ -464,6 +464,7 @@
SUBDIR += mediastreamer
SUBDIR += megacmd
SUBDIR += megatools
SUBDIR += mercury
SUBDIR += messagelib
SUBDIR += mgen
SUBDIR += micro_inetd

29
net/mercury/Makefile Normal file
View File

@ -0,0 +1,29 @@
PORTNAME= mercury
DISTVERSIONPREFIX= v
DISTVERSION= 2.3.0
CATEGORIES= net
PKGNAMESUFFIX= -rpc
MAINTAINER= yuri@FreeBSD.org
COMMENT= C library for implementing RPC, optimized for HPC
WWW= https://mercury-hpc.github.io/
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE.txt
USES= cmake:testing
USE_LDCONFIG= yes
USE_GITHUB= yes
GH_ACCOUNT= mercury-hpc
GH_TUPLE= mercury-hpc:kwsys:ee35b49:kwsys/Testing/driver/kwsys \
mercury-hpc:mchecksum:a4c489d:mchecksum/src/mchecksum \
mercury-hpc:preprocessor:749783c:preprocessor/src/boost
CMAKE_ON= BUILD_SHARED_LIBS
.if !exists(/usr/include/byteswap.h)
BROKEN= needs /usr/include/byteswap.h
.endif
.include <bsd.port.mk>

9
net/mercury/distinfo Normal file
View File

@ -0,0 +1,9 @@
TIMESTAMP = 1691129378
SHA256 (mercury-hpc-mercury-v2.3.0_GH0.tar.gz) = 2d2bb7900ee9c32b923798352d06d859f588fb593a9943253aa3c28758fa1c6b
SIZE (mercury-hpc-mercury-v2.3.0_GH0.tar.gz) = 506473
SHA256 (mercury-hpc-kwsys-ee35b49_GH0.tar.gz) = c3b03e95e5aca586d3fa8662d30676c60bbfad2d8d6f4e84a0c67cec3fad163f
SIZE (mercury-hpc-kwsys-ee35b49_GH0.tar.gz) = 225218
SHA256 (mercury-hpc-mchecksum-a4c489d_GH0.tar.gz) = c3a42462b9040a049872834155832cef395a82ef78b4fd42bab4bb20ce63d07a
SIZE (mercury-hpc-mchecksum-a4c489d_GH0.tar.gz) = 28067
SHA256 (mercury-hpc-preprocessor-749783c_GH0.tar.gz) = d22fa2122bff7dda52ba167d408a0047439f598d56c4c5b734399f6d03549a8d
SIZE (mercury-hpc-preprocessor-749783c_GH0.tar.gz) = 195007

View File

@ -0,0 +1,17 @@
--- src/util/mercury_mem.c.orig 2023-08-04 06:03:19 UTC
+++ src/util/mercury_mem.c
@@ -24,6 +24,14 @@
#endif
#include <stdlib.h>
+#ifdef MAP_ALIGNED_SUPER
+#define MAP_HUGETLB MAP_ALIGNED_SUPER // FreeBSD
+#endif
+
+#ifndef MAP_HUGETLB
+#define MAP_HUGETLB 0
+#endif
+
/*---------------------------------------------------------------------------*/
long
hg_mem_get_page_size(void)

9
net/mercury/pkg-descr Normal file
View File

@ -0,0 +1,9 @@
Mercury is a Remote Procedure Call (RPC) framework specifically designed for use
in High-Performance Computing (HPC) systems with high-performance fabrics. Its
network implementation is abstracted to make efficient use of native transports
and allow easy porting to a variety of systems (including future systems).
Mercury supports asynchronous transfer of parameters and execution requests, and
has dedicated support for large data arguments that are transferred using Remote
Memory Access (RMA). Its interface is generic and allows any function call to be
serialized. Since code generation is done using the C preprocessor, no external
tool is required.

61
net/mercury/pkg-plist Normal file
View File

@ -0,0 +1,61 @@
bin/hg_info
include/mercury.h
include/mercury_atomic.h
include/mercury_atomic_queue.h
include/mercury_bulk.h
include/mercury_byteswap.h
include/mercury_compiler_attributes.h
include/mercury_config.h
include/mercury_core.h
include/mercury_core_header.h
include/mercury_core_types.h
include/mercury_dl.h
include/mercury_dlog.h
include/mercury_event.h
include/mercury_hash_string.h
include/mercury_hash_table.h
include/mercury_header.h
include/mercury_inet.h
include/mercury_list.h
include/mercury_log.h
include/mercury_macros.h
include/mercury_mem.h
include/mercury_mem_pool.h
include/mercury_param.h
include/mercury_poll.h
include/mercury_proc.h
include/mercury_proc_bulk.h
include/mercury_proc_string.h
include/mercury_queue.h
include/mercury_request.h
include/mercury_string_object.h
include/mercury_thread.h
include/mercury_thread_annotation.h
include/mercury_thread_condition.h
include/mercury_thread_mutex.h
include/mercury_thread_pool.h
include/mercury_thread_rwlock.h
include/mercury_thread_spin.h
include/mercury_time.h
include/mercury_types.h
include/mercury_util.h
include/mercury_util_config.h
include/na.h
include/na_config.h
include/na_types.h
lib/libmercury.so
lib/libmercury.so.2
lib/libmercury.so.2.3.0
lib/libmercury_util.so
lib/libmercury_util.so.4
lib/libmercury_util.so.4.0.0
lib/libna.so
lib/libna.so.4
lib/libna.so.4.0.0
libdata/pkgconfig/mercury.pc
libdata/pkgconfig/mercury_util.pc
libdata/pkgconfig/na.pc
share/cmake/mercury/mercury-config-version.cmake
share/cmake/mercury/mercury-config.cmake
share/cmake/mercury/mercury-targets-%%CMAKE_BUILD_TYPE%%.cmake
share/cmake/mercury/mercury-targets.cmake