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

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

commit 15a125ba723e4e75d54a028674d00714838f4370
Author: Marco Casaroli <[email protected]>
AuthorDate: Wed Oct 28 10:38:12 2026 +0100

    syscall: Add pthread_sigmask() only with signals.
    
    pthread_sigmask() calls nxsig_procmask(), which is not built with
    CONFIG_DISABLE_ALL_SIGNALS.  Its system call entry has no condition on
    signals, so a protected or kernel build with pthreads and without
    signals does not link:
    
      pthread_sigmask.c:82: undefined reference to `nxsig_procmask'
    
    Add the system call only when signals are enabled, as for
    sigprocmask().
    
    Assisted-by: Claude Code:claude-opus-5-5
    Signed-off-by: Marco Casaroli <[email protected]>
---
 include/sys/syscall_lookup.h | 2 +-
 syscall/syscall.csv          | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/include/sys/syscall_lookup.h b/include/sys/syscall_lookup.h
index b5fa8fadba8..20cf700e0ae 100644
--- a/include/sys/syscall_lookup.h
+++ b/include/sys/syscall_lookup.h
@@ -354,8 +354,8 @@ SYSCALL_LOOKUP(munlockall,                 0)
   SYSCALL_LOOKUP(pthread_setaffinity_np,   3)
   SYSCALL_LOOKUP(pthread_getaffinity_np,   3)
 #endif
-  SYSCALL_LOOKUP(pthread_sigmask,          3)
 #ifndef CONFIG_DISABLE_ALL_SIGNALS
+  SYSCALL_LOOKUP(pthread_sigmask,          3)
   SYSCALL_LOOKUP(pthread_sigqueue,         3)
 #endif
 #endif
diff --git a/syscall/syscall.csv b/syscall/syscall.csv
index dbbd7f9ad0f..d04474d5e30 100644
--- a/syscall/syscall.csv
+++ b/syscall/syscall.csv
@@ -127,7 +127,7 @@
 "pthread_setaffinity_np","pthread.h","!defined(CONFIG_DISABLE_PTHREAD) && 
defined(CONFIG_SMP)","int","pthread_t","size_t","FAR const cpu_set_t *"
 
"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_sigmask","pthread.h","!defined(CONFIG_DISABLE_PTHREAD) && 
!defined(CONFIG_DISABLE_ALL_SIGNALS)","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"

Reply via email to