This is an automated email from the ASF dual-hosted git repository.

xiaoxiang781216 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git


The following commit(s) were added to refs/heads/master by this push:
     new 52274fe01fe syscall: Add pthread_sigqueue() to the system call table.
52274fe01fe is described below

commit 52274fe01fef87f09b230035a3dfcc56b5d64565
Author: Marco Casaroli <[email protected]>
AuthorDate: Wed Oct 28 09:15:07 2026 +0100

    syscall: Add pthread_sigqueue() to the system call table.
    
    pthread_sigqueue() is implemented in sched/pthread/pthread_sigqueue.c,
    but it has no system call entry: only libs/libc/libc.csv lists it.  In a
    protected or kernel build, user programs that call pthread_sigqueue()
    fail to link.
    
    Add it to syscall.csv and syscall_lookup.h, and remove the libc.csv
    entry.  The condition also needs !CONFIG_DISABLE_ALL_SIGNALS, because
    the implementation calls nxsig_dispatch(), which is built only with
    signals.
    
    Assisted-by: Claude Code:claude-opus-5-5
    Signed-off-by: Marco Casaroli <[email protected]>
---
 include/sys/syscall_lookup.h | 3 +++
 libs/libc/libc.csv           | 1 -
 syscall/syscall.csv          | 1 +
 3 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/include/sys/syscall_lookup.h b/include/sys/syscall_lookup.h
index 09c46e84bac..b5fa8fadba8 100644
--- a/include/sys/syscall_lookup.h
+++ b/include/sys/syscall_lookup.h
@@ -355,6 +355,9 @@ SYSCALL_LOOKUP(munlockall,                 0)
   SYSCALL_LOOKUP(pthread_getaffinity_np,   3)
 #endif
   SYSCALL_LOOKUP(pthread_sigmask,          3)
+#ifndef CONFIG_DISABLE_ALL_SIGNALS
+  SYSCALL_LOOKUP(pthread_sigqueue,         3)
+#endif
 #endif
 
 /* The following are defined only if message queues are enabled */
diff --git a/libs/libc/libc.csv b/libs/libc/libc.csv
index 45c5b7d4e26..ae49af9d37e 100644
--- a/libs/libc/libc.csv
+++ b/libs/libc/libc.csv
@@ -256,7 +256,6 @@
 
"pthread_self","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","pthread_t","void"
 
"pthread_setname_np","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","pthread_t","const
 char *"
 "pthread_setspecific","pthread.h","!defined(CONFIG_DISABLE_PTHREAD) && 
CONFIG_TLS_NELEM > 0","int","pthread_key_t","FAR const void *"
-"pthread_sigqueue","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","pthread_t","int","const
 union sigval"
 "pthread_yield","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","void"
 "putenv","stdlib.h","!defined(CONFIG_DISABLE_ENVIRON)","int","FAR const char *"
 "puts","stdio.h","defined(CONFIG_FILE_STREAM)","int","FAR const IPTR char *"
diff --git a/syscall/syscall.csv b/syscall/syscall.csv
index 8a1d685fa42..dbbd7f9ad0f 100644
--- a/syscall/syscall.csv
+++ b/syscall/syscall.csv
@@ -128,6 +128,7 @@
 
"pthread_setschedparam","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","pthread_t","int","FAR
 const struct sched_param *"
 
"pthread_setschedprio","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","pthread_t","int"
 
"pthread_sigmask","pthread.h","!defined(CONFIG_DISABLE_PTHREAD)","int","int","FAR
 const sigset_t *","FAR sigset_t *"
+"pthread_sigqueue","signal.h","!defined(CONFIG_DISABLE_PTHREAD) && 
!defined(CONFIG_DISABLE_ALL_SIGNALS)","int","pthread_t","int","union sigval|FAR 
void *|sival_ptr"
 "pwrite","unistd.h","","ssize_t","int","FAR const void *","size_t","off_t"
 "read","unistd.h","","ssize_t","int","FAR void *","size_t"
 "readv","sys/uio.h","","ssize_t","int","FAR const struct iovec *","int"

Reply via email to