pkgsrc-WIP-changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
liblfds: add new package
Module Name: pkgsrc-wip
Committed By: Thomas Klausner <wiz%NetBSD.org@localhost>
Pushed By: wiz
Date: Tue Mar 24 15:20:07 2026 +0100
Changeset: d8f31c6f1e366ac174445ef12d5a35259805f616
Modified Files:
Makefile
Added Files:
liblfds/DESCR
liblfds/Makefile
liblfds/PLIST
liblfds/distinfo
liblfds/patches/patch-liblfds711_inc_liblfds711_lfds711__porting__abstraction__layer__operating__system.h
Log Message:
liblfds: add new package
This is liblfds, a portable, license-free, lock-free data structure
library written in C.
Lock-free data structures are process, thread and interrupt safe
(i.e. the same data structure instance can be safely used concurrently
and simultaneously across cores, processes, threads and both inside
and outside of interrupt handlers), never sleep (and so are safe
for kernel use when sleeping is not permitted), operate without
context switches, cannot fail (no need to handle error cases, as
there are none), perform and scale literally orders of magnitude
better than locking data structures, and liblfds itself (as of
release 7.0.0) is implemented such that it performs no allocations
(and so works with NUMA, stack, heap and shared memory) and compiles
not just on a freestanding C89 implementation, but on a bare C89
implementation.
The library is completely documented (every API, function, macro,
struct, define, typedef and enum) and ships with a complete test
suite and a partial benchmark suite.
To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=d8f31c6f1e366ac174445ef12d5a35259805f616
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
diffstat:
Makefile | 1 +
liblfds/DESCR | 19 ++++++++++++++++
liblfds/Makefile | 26 ++++++++++++++++++++++
liblfds/PLIST | 20 +++++++++++++++++
liblfds/distinfo | 6 +++++
...orting__abstraction__layer__operating__system.h | 13 +++++++++++
6 files changed, 85 insertions(+)
diffs:
diff --git a/Makefile b/Makefile
index 6fe900cb2e..e78f8568d4 100644
--- a/Makefile
+++ b/Makefile
@@ -2113,6 +2113,7 @@ SUBDIR+= libjdksmidi
SUBDIR+= libjingle
SUBDIR+= libkml
SUBDIR+= libks
+SUBDIR+= liblfds
SUBDIR+= libliftoff
SUBDIR+= liblingoteach
SUBDIR+= libltc
diff --git a/liblfds/DESCR b/liblfds/DESCR
new file mode 100644
index 0000000000..f42a027dce
--- /dev/null
+++ b/liblfds/DESCR
@@ -0,0 +1,19 @@
+This is liblfds, a portable, license-free, lock-free data structure
+library written in C.
+
+Lock-free data structures are process, thread and interrupt safe
+(i.e. the same data structure instance can be safely used concurrently
+and simultaneously across cores, processes, threads and both inside
+and outside of interrupt handlers), never sleep (and so are safe
+for kernel use when sleeping is not permitted), operate without
+context switches, cannot fail (no need to handle error cases, as
+there are none), perform and scale literally orders of magnitude
+better than locking data structures, and liblfds itself (as of
+release 7.0.0) is implemented such that it performs no allocations
+(and so works with NUMA, stack, heap and shared memory) and compiles
+not just on a freestanding C89 implementation, but on a bare C89
+implementation.
+
+The library is completely documented (every API, function, macro,
+struct, define, typedef and enum) and ships with a complete test
+suite and a partial benchmark suite.
diff --git a/liblfds/Makefile b/liblfds/Makefile
new file mode 100644
index 0000000000..e34d571480
--- /dev/null
+++ b/liblfds/Makefile
@@ -0,0 +1,26 @@
+# $NetBSD$
+
+DISTNAME= liblfds%20release%207.1.1%20source
+PKGNAME= liblfds-7.1.1
+CATEGORIES= devel
+MASTER_SITES= https://www.liblfds.org/downloads/
+EXTRACT_SUFX= .tar.bz2
+
+MAINTAINER= pkgsrc-users%NetBSD.org@localhost
+HOMEPAGE= https://www.liblfds.org/
+COMMENT= Lock-free data structure library
+LICENSE= public-domain
+
+USE_TOOLS+= gmake
+
+WRKSRC= ${WRKDIR}/liblfds7.1.1/liblfds711/build/gcc_gnumake
+
+BUILD_TARGET= so_rel
+INSTALL_TARGET= so_install
+
+MAKE_FLAGS+= INSINCDIR=${DESTDIR}${PREFIX}/include/
+MAKE_FLAGS+= INSLIBDIR=${DESTDIR}${PREFIX}/lib/
+
+INSTALLATION_DIRS+= include lib
+
+.include "../../mk/bsd.pkg.mk"
diff --git a/liblfds/PLIST b/liblfds/PLIST
new file mode 100644
index 0000000000..b27df16b85
--- /dev/null
+++ b/liblfds/PLIST
@@ -0,0 +1,20 @@
+@comment $NetBSD$
+include/liblfds711.h
+include/liblfds711/lfds711_btree_addonly_unbalanced.h
+include/liblfds711/lfds711_freelist.h
+include/liblfds711/lfds711_hash_addonly.h
+include/liblfds711/lfds711_list_addonly_singlylinked_ordered.h
+include/liblfds711/lfds711_list_addonly_singlylinked_unordered.h
+include/liblfds711/lfds711_misc.h
+include/liblfds711/lfds711_porting_abstraction_layer_compiler.h
+include/liblfds711/lfds711_porting_abstraction_layer_operating_system.h
+include/liblfds711/lfds711_porting_abstraction_layer_operating_system.h.orig
+include/liblfds711/lfds711_porting_abstraction_layer_processor.h
+include/liblfds711/lfds711_prng.h
+include/liblfds711/lfds711_queue_bounded_manyproducer_manyconsumer.h
+include/liblfds711/lfds711_queue_bounded_singleproducer_singleconsumer.h
+include/liblfds711/lfds711_queue_unbounded_manyproducer_manyconsumer.h
+include/liblfds711/lfds711_ringbuffer.h
+include/liblfds711/lfds711_stack.h
+lib/liblfds711.so
+lib/liblfds711.so.1.0.0
diff --git a/liblfds/distinfo b/liblfds/distinfo
new file mode 100644
index 0000000000..24c46e1856
--- /dev/null
+++ b/liblfds/distinfo
@@ -0,0 +1,6 @@
+$NetBSD$
+
+BLAKE2s (liblfds%20release%207.1.1%20source.tar.bz2) = aa8d84c166c0637872e4607fb4f8014add5a6e62d69a689b24784bf720cf1fc3
+SHA512 (liblfds%20release%207.1.1%20source.tar.bz2) = fca13888427e9f3d9c73405d6eb31e9de08f2023b5c9cedf1fb1afb6d0af6bd4599ac497c1727e748f07b0a702a468af5df3407a6c5c9dd61d61ad254d460e26
+Size (liblfds%20release%207.1.1%20source.tar.bz2) = 136753 bytes
+SHA1 (patch-liblfds711_inc_liblfds711_lfds711__porting__abstraction__layer__operating__system.h) = 03c7f8b37fd798a5b3cda3eb51a2b3dbed5f8854
diff --git a/liblfds/patches/patch-liblfds711_inc_liblfds711_lfds711__porting__abstraction__layer__operating__system.h b/liblfds/patches/patch-liblfds711_inc_liblfds711_lfds711__porting__abstraction__layer__operating__system.h
new file mode 100644
index 0000000000..fd2149de38
--- /dev/null
+++ b/liblfds/patches/patch-liblfds711_inc_liblfds711_lfds711__porting__abstraction__layer__operating__system.h
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- ../../inc/liblfds711/lfds711_porting_abstraction_layer_operating_system.h.orig 2026-03-24 14:16:01.608723357 +0000
++++ ../../inc/liblfds711/lfds711_porting_abstraction_layer_operating_system.h
+@@ -40,7 +40,7 @@
+
+
+ /****************************************************************************/
+-#if( defined __linux__ && !defined KERNEL_MODE )
++#if( (defined __linux__ || defined __NetBSD__) && !defined KERNEL_MODE )
+
+ #ifdef LFDS711_PAL_OPERATING_SYSTEM
+ #error More than one porting abstraction layer matches the current platform in "lfds711_porting_abstraction_layer_operating_system.h".
Home |
Main Index |
Thread Index |
Old Index