Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 20 Jan 2026 09:22:34 +0000
From:      Dima Panov <fluffy@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 3ebf8d930fab - main - devel/libdispatch: update to 6.1.1 release (+)
Message-ID:  <696f495a.265db.56f84959@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by fluffy:

URL: https://cgit.FreeBSD.org/ports/commit/?id=3ebf8d930fabe3c64048ede0f3187c07e4754ba2

commit 3ebf8d930fabe3c64048ede0f3187c07e4754ba2
Author:     Dima Panov <fluffy@FreeBSD.org>
AuthorDate: 2026-01-20 09:21:44 +0000
Commit:     Dima Panov <fluffy@FreeBSD.org>
CommitDate: 2026-01-20 09:21:44 +0000

    devel/libdispatch: update to 6.1.1 release (+)
    
    Release notes:  https://github.com/swiftlang/swift-corelibs-libdispatch/releases/tag/swift-6.1.1-RELEASE
---
 devel/libdispatch/Makefile                         |  2 +-
 devel/libdispatch/distinfo                         |  6 +-
 devel/libdispatch/files/patch-CMakeLists.txt       | 24 ++++---
 .../files/patch-cmake_libdispatch.pc.in            | 13 ++++
 .../patch-cmake_modules_PkgConfigGeneration.cmake  | 21 +++++++
 devel/libdispatch/files/patch-src_CMakeLists.txt   | 13 ++--
 .../libdispatch/files/patch-src_event_workqueue.c  | 73 +++++++++++-----------
 .../files/patch-src_event_workqueue__internal.h    | 11 ++++
 devel/libdispatch/files/patch-src_internal.h       | 14 ++++-
 devel/libdispatch/files/patch-src_shims_lock.c     | 22 ++++---
 devel/libdispatch/files/patch-src_shims_lock.h     | 10 ++-
 devel/libdispatch/pkg-plist                        |  1 +
 12 files changed, 140 insertions(+), 70 deletions(-)

diff --git a/devel/libdispatch/Makefile b/devel/libdispatch/Makefile
index 16c3769343d2..f3ae0f1b572c 100644
--- a/devel/libdispatch/Makefile
+++ b/devel/libdispatch/Makefile
@@ -1,5 +1,5 @@
 PORTNAME=	libdispatch
-DISTVERSION=	6.1
+DISTVERSION=	6.1.1
 PORTEPOCH=	1
 CATEGORIES=	devel
 
diff --git a/devel/libdispatch/distinfo b/devel/libdispatch/distinfo
index 25429492d7fa..e7ce29e7403c 100644
--- a/devel/libdispatch/distinfo
+++ b/devel/libdispatch/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1743943822
-SHA256 (swiftlang-swift-corelibs-libdispatch-6.1-swift-6.1-RELEASE_GH0.tar.gz) = 5bba8d7442890f7dbd37a9245340c5bb0c4c924dee6180ba30385b24e3fdf121
-SIZE (swiftlang-swift-corelibs-libdispatch-6.1-swift-6.1-RELEASE_GH0.tar.gz) = 595700
+TIMESTAMP = 1757674615
+SHA256 (swiftlang-swift-corelibs-libdispatch-6.1.1-swift-6.1.1-RELEASE_GH0.tar.gz) = 6fc6f8b1767a1348e1d960647b2bfbc52fd7074b7aeab97bd0f4b21af58baa47
+SIZE (swiftlang-swift-corelibs-libdispatch-6.1.1-swift-6.1.1-RELEASE_GH0.tar.gz) = 595723
diff --git a/devel/libdispatch/files/patch-CMakeLists.txt b/devel/libdispatch/files/patch-CMakeLists.txt
index 0460f0e62c51..e96f7e93416f 100644
--- a/devel/libdispatch/files/patch-CMakeLists.txt
+++ b/devel/libdispatch/files/patch-CMakeLists.txt
@@ -1,13 +1,21 @@
---- CMakeLists.txt.orig	2024-06-13 00:13:26 UTC
+--- CMakeLists.txt.orig	2025-03-07 00:50:44 UTC
 +++ CMakeLists.txt
-@@ -187,6 +187,10 @@ endif()
-   find_package(LibRT)
- endif()
+@@ -132,6 +132,7 @@ include(SwiftSupport)
+ include(DispatchCompilerWarnings)
+ include(DTrace)
+ include(SwiftSupport)
++include(PkgConfigGeneration)
  
-+if(CMAKE_SYSTEM_NAME STREQUAL FreeBSD)
-+  find_package(BlocksRuntime)
+ # NOTE(abdulras) this is the CMake supported way to control whether we generate
+ # shared or static libraries.  This impacts the behaviour of `add_library` in
+@@ -191,6 +192,10 @@ if(NOT CMAKE_SYSTEM_NAME STREQUAL Android)
+ 
+ if(NOT CMAKE_SYSTEM_NAME STREQUAL Android)
+   find_package(LibRT)
 +endif()
 +
++if(CMAKE_SYSTEM_NAME STREQUAL FreeBSD)
++  find_package(BlocksRuntime)
+ endif()
+ 
  check_function_exists(_pthread_workqueue_init HAVE__PTHREAD_WORKQUEUE_INIT)
- check_function_exists(getprogname HAVE_GETPROGNAME)
- check_function_exists(mach_absolute_time HAVE_MACH_ABSOLUTE_TIME)
diff --git a/devel/libdispatch/files/patch-cmake_libdispatch.pc.in b/devel/libdispatch/files/patch-cmake_libdispatch.pc.in
new file mode 100644
index 000000000000..b86d582dc54f
--- /dev/null
+++ b/devel/libdispatch/files/patch-cmake_libdispatch.pc.in
@@ -0,0 +1,13 @@
+--- cmake/libdispatch.pc.in.orig	2025-09-12 11:07:41 UTC
++++ cmake/libdispatch.pc.in
+@@ -0,0 +1,10 @@
++prefix=@CMAKE_INSTALL_PREFIX@
++exec_prefix=${prefix}
++libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@
++includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
++
++Name: libdispatch
++Description: libdispatch (a.k.a. Grand Central Dispatch)
++Version: @PROJECT_VERSION@
++Libs: -L${libdir} -ldispatch
++Cflags: -I${includedir}
diff --git a/devel/libdispatch/files/patch-cmake_modules_PkgConfigGeneration.cmake b/devel/libdispatch/files/patch-cmake_modules_PkgConfigGeneration.cmake
new file mode 100644
index 000000000000..7d468a3c2ea9
--- /dev/null
+++ b/devel/libdispatch/files/patch-cmake_modules_PkgConfigGeneration.cmake
@@ -0,0 +1,21 @@
+--- cmake/modules/PkgConfigGeneration.cmake.orig	2025-09-12 11:07:41 UTC
++++ cmake/modules/PkgConfigGeneration.cmake
+@@ -0,0 +1,18 @@
++#.rst:
++# PkgConfigGeneration
++# -------------------
++#
++# Generate the pkg-config file for libdispatch.
++#
++# The script generates a pkg-config file on non-Apple UNIX-like systems.
++#
++
++# Check if the system is UNIX-based and not Apple
++if(UNIX AND NOT APPLE)
++  # Configure the pkg-config file from the template
++  configure_file("${PROJECT_SOURCE_DIR}/cmake/libdispatch.pc.in"
++                 "${PROJECT_BINARY_DIR}/libdispatch.pc" @ONLY)
++  
++  # Install the generated pkg-config file to the appropriate directory
++  install(FILES "${PROJECT_BINARY_DIR}/libdispatch.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
++endif()
diff --git a/devel/libdispatch/files/patch-src_CMakeLists.txt b/devel/libdispatch/files/patch-src_CMakeLists.txt
index 5774cceae846..2ee9aa26a227 100644
--- a/devel/libdispatch/files/patch-src_CMakeLists.txt
+++ b/devel/libdispatch/files/patch-src_CMakeLists.txt
@@ -1,13 +1,12 @@
---- src/CMakeLists.txt.orig	2024-06-13 00:13:26 UTC
+--- src/CMakeLists.txt.orig	2025-03-07 00:50:44 UTC
 +++ src/CMakeLists.txt
-@@ -1,6 +1,6 @@ if(NOT CMAKE_SYSTEM_NAME STREQUAL Darwin)
+@@ -1,5 +1,5 @@
  
- if(NOT CMAKE_SYSTEM_NAME STREQUAL Darwin)
--  add_subdirectory(BlocksRuntime)
-+#  add_subdirectory(BlocksRuntime)
+-if(NOT CMAKE_SYSTEM_NAME STREQUAL Darwin)
++if(NOT BlocksRuntime_FOUND)
+   add_subdirectory(BlocksRuntime)
  endif()
  
- add_library(dispatch
 @@ -145,7 +145,7 @@ target_compile_options(dispatch PRIVATE -fblocks)
  # FIXME(compnerd) add check for -fblocks?
  target_compile_options(dispatch PRIVATE -fblocks)
@@ -27,4 +26,4 @@
 +        EXPORT_NAME dispatch )
  endif()
  
- if(ENABLE_SWIFT)
+ if(LINKER_SUPPORTS_BUILD_ID)
diff --git a/devel/libdispatch/files/patch-src_event_workqueue.c b/devel/libdispatch/files/patch-src_event_workqueue.c
index 151e807f356e..edffa17c2efc 100644
--- a/devel/libdispatch/files/patch-src_event_workqueue.c
+++ b/devel/libdispatch/files/patch-src_event_workqueue.c
@@ -1,6 +1,6 @@
---- src/event/workqueue.c.orig	2021-09-17 04:54:52 UTC
+--- src/event/workqueue.c.orig	2025-03-07 00:50:44 UTC
 +++ src/event/workqueue.c
-@@ -180,6 +180,52 @@ _dispatch_workq_count_runnable_workers(dispatch_workq_
+@@ -247,6 +247,53 @@ _dispatch_workq_count_runnable_workers(dispatch_workq_
  
  	_dispatch_unfair_lock_unlock(&mon->registered_tid_lock);
  }
@@ -8,47 +8,48 @@
 +#include <sys/param.h>
 +#include <sys/sysctl.h>
 +#include <sys/proc.h>
++#include <sys/user.h>
 +
 +static void
 +_dispatch_workq_count_runnable_workers(dispatch_workq_monitor_t mon)
 +{
-+	struct kinfo_proc kp[WORKQ_MAX_TRACKED_TIDS] = {0};
-+	size_t size, len;
-+	int mib[] = {CTL_KERN, KERN_PROC, KERN_PROC_PID, (int)getpid(), (int)sizeof(struct kinfo_proc), 0};
-+	if (sysctl(mib, 6, NULL, &size, NULL, 0) < 0) {
-+		_dispatch_debug("workq: Failed to sysctl1");
-+		return;
++    struct kinfo_proc kp[WORKQ_MAX_TRACKED_TIDS];
++    size_t size;
++    int count, runners = 0;
++    int mib[] = {CTL_KERN, KERN_PROC, KERN_PROC_PID | KERN_PROC_INC_THREAD, (int)getpid()};
++
++    // get size we need
++    if (sysctl(mib, 4, NULL, &size, NULL, 0) < 0) {
++	_dispatch_debug("workq: failed to get size for kinfo_proc[] from sysctll");
++	return;
++    }
++
++    // only care about up to WORKQ_MAX_TRACKED_TIDS threads
++    size = MIN(sizeof(kp), size);
++
++    if (sysctl(mib, 4, kp, &size, NULL, 0) < 0) {
++	_dispatch_debug("workq: failed to get kinfo_proc[] from sysctl");
++	return;
++    }
++
++    count = (int)(size / sizeof(struct kinfo_proc));
++
++    _dispatch_unfair_lock_lock(&mon->registered_tid_lock);
++
++    for (int i = 0; i < mon->num_registered_tids; ++i) {
++	dispatch_tid tid = mon->registered_tids[i];
++	for (int j = 0; i < count; ++i) {
++	    if ((dispatch_tid)kp[j].ki_tid != tid) { continue; }
++	    if (kp[j].ki_stat == SRUN || kp[j].ki_stat == SIDL) {
++		++runners;
++		break;
++	    }
 +	}
++    }
 +
-+	size = size > sizeof(kp)? sizeof(kp): size;
-+	len = size / sizeof(struct kinfo_proc);
-+	mib[5] = (int)len;
-+	if (sysctl(mib, 6, kp, &size, NULL, 0) < 0) {
-+		_dispatch_debug("workq: Failed to sysctl2");
-+		return;
-+	}
-+
-+	int running_count = 0;
-+
-+	_dispatch_unfair_lock_lock(&mon->registered_tid_lock);
-+
-+	for (int i = 0; i < mon->num_registered_tids; i++) {
-+		dispatch_tid tid = mon->registered_tids[i];
-+		for (size_t j = 0; j < len; j++) {
-+			if ((dispatch_tid)kp[j].p_tid != tid) {
-+				continue;
-+			}
-+
-+			if (kp[j].p_stat == SRUN || kp[j].p_stat == SIDL || kp[j].p_stat == SONPROC) {
-+				running_count++;
-+				break;
-+			}
-+		}
-+	}
-+
-+	mon->num_runnable = running_count;
++    mon->num_runnable = runners;
 +
-+	_dispatch_unfair_lock_unlock(&mon->registered_tid_lock);
++    _dispatch_unfair_lock_unlock(&mon->registered_tid_lock);
 +}
  #else
  #error must define _dispatch_workq_count_runnable_workers
diff --git a/devel/libdispatch/files/patch-src_event_workqueue__internal.h b/devel/libdispatch/files/patch-src_event_workqueue__internal.h
new file mode 100644
index 000000000000..e393356ad346
--- /dev/null
+++ b/devel/libdispatch/files/patch-src_event_workqueue__internal.h
@@ -0,0 +1,11 @@
+--- src/event/workqueue_internal.h.orig	2025-03-07 00:50:44 UTC
++++ src/event/workqueue_internal.h
+@@ -30,7 +30,7 @@ void _dispatch_workq_worker_unregister(dispatch_queue_
+ void _dispatch_workq_worker_register(dispatch_queue_global_t root_q);
+ void _dispatch_workq_worker_unregister(dispatch_queue_global_t root_q);
+ 
+-#if defined(__linux__) || defined(_WIN32)
++#if defined(__linux__) || defined(_WIN32) || defined(__FreeBSD__)
+ #define HAVE_DISPATCH_WORKQ_MONITORING 1
+ #else
+ #define HAVE_DISPATCH_WORKQ_MONITORING 0
diff --git a/devel/libdispatch/files/patch-src_internal.h b/devel/libdispatch/files/patch-src_internal.h
index f36de567dc00..d2ca8a141670 100644
--- a/devel/libdispatch/files/patch-src_internal.h
+++ b/devel/libdispatch/files/patch-src_internal.h
@@ -1,6 +1,16 @@
---- src/internal.h.orig	2021-09-17 04:54:52 UTC
+--- src/internal.h.orig	2025-03-07 00:50:44 UTC
 +++ src/internal.h
-@@ -475,12 +475,10 @@ struct dispatch_unote_class_s;
+@@ -277,6 +277,9 @@ upcast(dispatch_object_t dou)
+ #include <sys/sysctl.h>
+ #include <sys/queue.h>
+ #endif
++#if defined(__FreeBSD__)
++#include <sys/eventfd.h>
++#endif // __FreeBSD__
+ #include <sys/socket.h>
+ #include <sys/time.h>
+ #include <sys/mman.h>
+@@ -475,12 +478,10 @@ struct dispatch_unote_class_s;
  
  struct dispatch_unote_class_s;
  
diff --git a/devel/libdispatch/files/patch-src_shims_lock.c b/devel/libdispatch/files/patch-src_shims_lock.c
index 3fafcc2344e7..f54778de96ac 100644
--- a/devel/libdispatch/files/patch-src_shims_lock.c
+++ b/devel/libdispatch/files/patch-src_shims_lock.c
@@ -1,10 +1,11 @@
---- src/shims/lock.c.orig	2023-06-15 00:55:45 UTC
+--- src/shims/lock.c.orig	2025-03-07 00:50:44 UTC
 +++ src/shims/lock.c
-@@ -56,6 +56,18 @@ _dispatch_thread_switch(dispatch_lock value, dispatch_
+@@ -56,6 +56,20 @@ _dispatch_thread_switch(dispatch_lock value, dispatch_
  #endif
  #endif
  
 +#if defined(__unix__)
++#if !HAVE_UL_UNFAIR_LOCK
 +DISPATCH_ALWAYS_INLINE
 +static inline void
 +_dispatch_thread_switch(dispatch_lock value, dispatch_lock_options_t flags,
@@ -14,12 +15,13 @@
 +	(void)flags;
 +	(void)timeout;
 +}
++#endif // HAVE_UL_UNFAIR_LOCK
 +#endif
 +
  #pragma mark - semaphores
  
  #if USE_MACH_SEM
-@@ -395,8 +407,10 @@ _dispatch_unfair_lock_wake(uint32_t *uaddr, uint32_t f
+@@ -395,8 +409,10 @@ _dispatch_unfair_lock_wake(uint32_t *uaddr, uint32_t f
  #include <sys/time.h>
  #ifdef __ANDROID__
  #include <sys/syscall.h>
@@ -31,7 +33,7 @@
  #endif /* __ANDROID__ */
  
  DISPATCH_ALWAYS_INLINE
-@@ -405,7 +419,12 @@ _dispatch_futex(uint32_t *uaddr, int op, uint32_t val,
+@@ -405,7 +421,12 @@ _dispatch_futex(uint32_t *uaddr, int op, uint32_t val,
  		const struct timespec *timeout, uint32_t *uaddr2, uint32_t val3,
  		int opflags)
  {
@@ -44,7 +46,7 @@
  }
  
  // returns 0, ETIMEDOUT, EFAULT, EINTR, EWOULDBLOCK
-@@ -415,11 +434,15 @@ _futex_blocking_op(uint32_t *uaddr, int futex_op, uint
+@@ -415,11 +436,15 @@ _futex_blocking_op(uint32_t *uaddr, int futex_op, uint
  		const struct timespec *timeout, int flags)
  {
  	for (;;) {
@@ -63,7 +65,7 @@
  		case EINTR:
  			/*
  			 * if we have a timeout, we need to return for the caller to
-@@ -455,6 +478,7 @@ _dispatch_futex_wake(uint32_t *uaddr, int wake, int op
+@@ -455,6 +480,7 @@ _dispatch_futex_wake(uint32_t *uaddr, int wake, int op
  	DISPATCH_INTERNAL_CRASH(errno, "_dlock_wake() failed");
  }
  
@@ -71,7 +73,7 @@
  static void
  _dispatch_futex_lock_pi(uint32_t *uaddr, struct timespec *timeout, int detect,
  	      int opflags)
-@@ -472,6 +496,7 @@ _dispatch_futex_unlock_pi(uint32_t *uaddr, int opflags
+@@ -472,6 +498,7 @@ _dispatch_futex_unlock_pi(uint32_t *uaddr, int opflags
  	if (rc == 0) return;
  	DISPATCH_CLIENT_CRASH(errno, "futex_unlock_pi() failed");
  }
@@ -79,7 +81,7 @@
  
  #endif
  #pragma mark - wait for address
-@@ -516,6 +541,19 @@ _dispatch_wait_on_address(uint32_t volatile *_address,
+@@ -516,6 +543,19 @@ _dispatch_wait_on_address(uint32_t volatile *_address,
  			? INFINITE : ((nsecs + 1000000) / 1000000);
  	if (dwMilliseconds == 0) return ETIMEDOUT;
  	return WaitOnAddress(address, &value, sizeof(value), dwMilliseconds) == TRUE;
@@ -99,7 +101,7 @@
  #else
  #error _dispatch_wait_on_address unimplemented for this platform
  #endif
-@@ -606,7 +644,7 @@ _dispatch_unfair_lock_lock_slow(dispatch_unfair_lock_t
+@@ -606,7 +646,7 @@ _dispatch_unfair_lock_lock_slow(dispatch_unfair_lock_t
  		}
  	}
  }
@@ -108,7 +110,7 @@
  void
  _dispatch_unfair_lock_lock_slow(dispatch_unfair_lock_t dul,
  		dispatch_lock_options_t flags)
-@@ -643,7 +681,7 @@ _dispatch_unfair_lock_unlock_slow(dispatch_unfair_lock
+@@ -643,7 +683,7 @@ _dispatch_unfair_lock_unlock_slow(dispatch_unfair_lock
  	if (_dispatch_lock_has_waiters(cur)) {
  		_dispatch_unfair_lock_wake(&dul->dul_lock, 0);
  	}
diff --git a/devel/libdispatch/files/patch-src_shims_lock.h b/devel/libdispatch/files/patch-src_shims_lock.h
index 75d1230dcf5e..6e61fd9faafa 100644
--- a/devel/libdispatch/files/patch-src_shims_lock.h
+++ b/devel/libdispatch/files/patch-src_shims_lock.h
@@ -1,11 +1,15 @@
---- src/shims/lock.h.orig	2021-09-17 04:54:52 UTC
+--- src/shims/lock.h.orig	2025-03-07 00:50:44 UTC
 +++ src/shims/lock.h
-@@ -100,6 +100,25 @@ _dispatch_lock_owner(dispatch_lock lock_value)
+@@ -100,6 +100,29 @@ _dispatch_lock_owner(dispatch_lock lock_value)
  	return lock_value & DLOCK_OWNER_MASK;
  }
  
 +#elif defined(__FreeBSD__)
 +
++#include <sys/types.h>
++#include <sys/umtx.h>
++#include <sched.h>
++
 +typedef uint32_t dispatch_tid;
 +typedef uint32_t dispatch_lock;
 +
@@ -26,7 +30,7 @@
  #else
  #  error define _dispatch_lock encoding scheme for your platform here
  #endif
-@@ -167,10 +186,15 @@ _dispatch_lock_has_failed_trylock(dispatch_lock lock_v
+@@ -167,10 +190,15 @@ _dispatch_lock_has_failed_trylock(dispatch_lock lock_v
  #endif
  
  #ifndef HAVE_FUTEX
diff --git a/devel/libdispatch/pkg-plist b/devel/libdispatch/pkg-plist
index 5443b321d338..6458afaf907b 100644
--- a/devel/libdispatch/pkg-plist
+++ b/devel/libdispatch/pkg-plist
@@ -20,6 +20,7 @@ include/os/object.h
 lib/libdispatch.so
 lib/libdispatch.so.1
 lib/libdispatch.so.1.3
+libdata/pkgconfig/libdispatch.pc
 share/man/man3/dispatch.3.gz
 share/man/man3/dispatch_after.3.gz
 share/man/man3/dispatch_api.3.gz


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?696f495a.265db.56f84959>