From 5b514de30f683fbf15386d2d960435929ca34a35 Mon Sep 17 00:00:00 2001 From: wangchengdong Date: Thu, 20 Nov 2025 15:39:34 +0800 Subject: [PATCH 1/2] sched/signal: Add support to disable signals Currently nuttx is more and more used on small embedded systems with limited resources. Some of these systems do not require signal handling functionality or posix apis. This patch adds a configuration option to disable signal handling in order to save code size and memory. Signed-off-by: Chengdong Wang --- drivers/syslog/syslog_write.c | 4 ++ fs/procfs/fs_procfsproc.c | 3 +- fs/vfs/fs_epoll.c | 2 + include/nuttx/sched.h | 5 +++ libs/libc/signal/CMakeLists.txt | 51 +++++++++++++------------- libs/libc/signal/Make.defs | 3 +- libs/libc/spawn/lib_psa_init.c | 3 +- libs/libc/unistd/CMakeLists.txt | 6 ++- libs/libc/unistd/Make.defs | 8 +++- sched/Kconfig | 10 +++++ sched/group/CMakeLists.txt | 7 +++- sched/group/Make.defs | 6 ++- sched/group/group_leave.c | 3 +- sched/init/nx_start.c | 3 +- sched/misc/assert.c | 4 ++ sched/pthread/pthread_exit.c | 5 ++- sched/signal/CMakeLists.txt | 65 +++++++++++++++++---------------- sched/signal/Make.defs | 3 +- sched/task/task_exithook.c | 3 +- sched/task/task_restart.c | 2 + sched/task/task_setup.c | 5 ++- sched/task/task_spawnparms.c | 2 + sched/timer/timer_settime.c | 6 ++- 23 files changed, 133 insertions(+), 76 deletions(-) diff --git a/drivers/syslog/syslog_write.c b/drivers/syslog/syslog_write.c index 889086c1b6672..ad25dbe42ff62 100644 --- a/drivers/syslog/syslog_write.c +++ b/drivers/syslog/syslog_write.c @@ -56,7 +56,9 @@ static bool syslog_safe_to_block(void) { +#ifndef CONFIG_DISABLE_SIGNALS FAR const struct tcb_s *rtcb; +#endif /* It's not safe to block in interrupts or when executing the idle loop */ @@ -67,11 +69,13 @@ static bool syslog_safe_to_block(void) /* It's not safe to block if a signal is being delivered */ +#ifndef CONFIG_DISABLE_SIGNALS rtcb = nxsched_self(); if (rtcb->sigdeliver != NULL) { return false; } +#endif return true; } diff --git a/fs/procfs/fs_procfsproc.c b/fs/procfs/fs_procfsproc.c index 56068c67cd3ba..1ff9661bf12c8 100644 --- a/fs/procfs/fs_procfsproc.c +++ b/fs/procfs/fs_procfsproc.c @@ -641,12 +641,13 @@ static ssize_t proc_status(FAR struct proc_file_s *procfile, /* Show the signal mask. Note: sigset_t is uint32_t on NuttX. */ +#ifndef CONFIG_DISABLE_SIGNALS linesize = procfs_snprintf(procfile->line, STATUS_LINELEN, "%-12s" SIGSET_FMT "\n", "SigMask:", SIGSET_ELEM(&tcb->sigprocmask)); copysize = procfs_memcpy(procfile->line, linesize, buffer, remaining, &offset); - +#endif totalsize += copysize; return totalsize; } diff --git a/fs/vfs/fs_epoll.c b/fs/vfs/fs_epoll.c index 91181ea17c528..7c71146c2d5dc 100644 --- a/fs/vfs/fs_epoll.c +++ b/fs/vfs/fs_epoll.c @@ -724,7 +724,9 @@ int epoll_pwait(int epfd, FAR struct epoll_event *evs, { FAR struct file *filep; FAR epoll_head_t *eph; +#ifndef CONFIG_DISABLE_SIGNALS sigset_t oldsigmask; +#endif int ret; eph = epoll_head_from_fd(epfd, &filep); diff --git a/include/nuttx/sched.h b/include/nuttx/sched.h index 53dbe6eae675c..d12f68668a9dc 100644 --- a/include/nuttx/sched.h +++ b/include/nuttx/sched.h @@ -661,11 +661,13 @@ struct tcb_s /* POSIX Signal Control Fields ********************************************/ +#ifndef CONFIG_DISABLE_SIGNALS sigset_t sigprocmask; /* Signals that are blocked */ sigset_t sigwaitmask; /* Waiting for pending signals */ sq_queue_t sigpendactionq; /* List of pending signal actions */ sq_queue_t sigpostedq; /* List of posted signals */ siginfo_t *sigunbinfo; /* Signal info when task unblocked */ +#endif /* Robust mutex support ***************************************************/ @@ -712,7 +714,10 @@ struct tcb_s * to be processed. */ +#ifndef CONFIG_DISABLE_SIGNALS sig_deliver_t sigdeliver; +#endif + #if CONFIG_TASK_NAME_SIZE > 0 char name[CONFIG_TASK_NAME_SIZE + 1]; /* Task name (with NUL terminator) */ #endif diff --git a/libs/libc/signal/CMakeLists.txt b/libs/libc/signal/CMakeLists.txt index 00ccefdda7a9f..9ca88a473db18 100644 --- a/libs/libc/signal/CMakeLists.txt +++ b/libs/libc/signal/CMakeLists.txt @@ -19,28 +19,29 @@ # the License. # # ############################################################################## - -target_sources( - c - PRIVATE sig_addset.c - sig_delset.c - sig_emptyset.c - sig_fillset.c - sig_nandset.c - sig_andset.c - sig_orset.c - sig_xorset.c - sig_isemptyset.c - sig_killpg.c - sig_altstack.c - sig_interrupt.c - sig_hold.c - sig_ignore.c - sig_ismember.c - sig_pause.c - sig_psignal.c - sig_raise.c - sig_relse.c - sig_set.c - sig_signal.c - sig_wait.c) +if(NOT CONFIG_DISABLE_SIGNALS) + target_sources( + c + PRIVATE sig_addset.c + sig_delset.c + sig_emptyset.c + sig_fillset.c + sig_nandset.c + sig_andset.c + sig_orset.c + sig_xorset.c + sig_isemptyset.c + sig_killpg.c + sig_altstack.c + sig_interrupt.c + sig_hold.c + sig_ignore.c + sig_ismember.c + sig_pause.c + sig_psignal.c + sig_raise.c + sig_relse.c + sig_set.c + sig_signal.c + sig_wait.c) +endif() diff --git a/libs/libc/signal/Make.defs b/libs/libc/signal/Make.defs index 7d42a239add7b..5b4597bbc2b3c 100644 --- a/libs/libc/signal/Make.defs +++ b/libs/libc/signal/Make.defs @@ -19,7 +19,7 @@ # under the License. # ############################################################################ - +ifneq ($(CONFIG_DISABLE_SIGNALS),y) # Add the signal C files to the build CSRCS += sig_addset.c sig_delset.c sig_emptyset.c sig_fillset.c @@ -32,3 +32,4 @@ CSRCS += sig_raise.c sig_relse.c sig_set.c sig_signal.c sig_wait.c DEPPATH += --dep-path signal VPATH += :signal +endif \ No newline at end of file diff --git a/libs/libc/spawn/lib_psa_init.c b/libs/libc/spawn/lib_psa_init.c index 306e68d1a989d..99227a92a4450 100644 --- a/libs/libc/spawn/lib_psa_init.c +++ b/libs/libc/spawn/lib_psa_init.c @@ -86,8 +86,9 @@ int posix_spawnattr_init(posix_spawnattr_t *attr) attr->policy = ret; /* Empty signal mask */ - +#ifndef CONFIG_DISABLE_SIGNALS sigemptyset(&attr->sigmask); +#endif #ifdef CONFIG_SCHED_SPORADIC /* Sporadic scheduling parameters */ diff --git a/libs/libc/unistd/CMakeLists.txt b/libs/libc/unistd/CMakeLists.txt index 89ffde6cbc383..75739f4af9f6d 100644 --- a/libs/libc/unistd/CMakeLists.txt +++ b/libs/libc/unistd/CMakeLists.txt @@ -41,7 +41,6 @@ set(SRCS lib_alarm.c lib_fstatvfs.c lib_statvfs.c - lib_sleep.c lib_nice.c lib_setreuid.c lib_setregid.c @@ -61,7 +60,6 @@ set(SRCS lib_readlinkat.c lib_symlinkat.c lib_unlinkat.c - lib_usleep.c lib_getpgrp.c lib_getpgid.c lib_lockf.c @@ -85,6 +83,10 @@ if(NOT CONFIG_SCHED_USER_IDENTITY) lib_getegid.c) endif() +if(NOT CONFIG_DISABLE_SIGNALS) + list(APPEND SRCS lib_sleep.c lib_usleep.c) +endif() + if(NOT CONFIG_DISABLE_ENVIRON) list(APPEND SRCS lib_restoredir.c) endif() diff --git a/libs/libc/unistd/Make.defs b/libs/libc/unistd/Make.defs index 81a75b2d45217..d89d54ef2aad2 100644 --- a/libs/libc/unistd/Make.defs +++ b/libs/libc/unistd/Make.defs @@ -26,15 +26,19 @@ CSRCS += lib_access.c lib_daemon.c lib_swab.c lib_pathconf.c lib_sysconf.c CSRCS += lib_getcwd.c lib_getentropy.c lib_getopt_common.c lib_getopt.c CSRCS += lib_getopt_long.c lib_getopt_longonly.c lib_getoptvars.c lib_getoptargp.c CSRCS += lib_getopterrp.c lib_getoptindp.c lib_getoptoptp.c lib_times.c -CSRCS += lib_alarm.c lib_fstatvfs.c lib_statvfs.c lib_sleep.c lib_nice.c +CSRCS += lib_alarm.c lib_fstatvfs.c lib_statvfs.c lib_nice.c CSRCS += lib_setreuid.c lib_setregid.c lib_getrusage.c lib_utime.c lib_utimes.c CSRCS += lib_setrlimit.c lib_getrlimit.c lib_setpriority.c lib_getpriority.c CSRCS += lib_futimes.c lib_lutimes.c lib_gethostname.c lib_sethostname.c CSRCS += lib_fchownat.c lib_linkat.c lib_readlinkat.c lib_symlinkat.c -CSRCS += lib_unlinkat.c lib_usleep.c lib_getpgrp.c lib_getpgid.c +CSRCS += lib_unlinkat.c lib_getpgrp.c lib_getpgid.c CSRCS += lib_lockf.c lib_flock.c lib_getpass.c CSRCS += lib_chdir.c lib_fchdir.c lib_confstr.c +ifneq ($(CONFIG_DISABLE_SIGNALS),y) +CSRCS += lib_usleep.c lib_sleep.c +endif + ifneq ($(CONFIG_SCHED_USER_IDENTITY),y) CSRCS += lib_setuid.c lib_setgid.c lib_getuid.c lib_getgid.c CSRCS += lib_seteuid.c lib_setegid.c lib_geteuid.c lib_getegid.c diff --git a/sched/Kconfig b/sched/Kconfig index 4e17db70868fc..a813bef0d9875 100644 --- a/sched/Kconfig +++ b/sched/Kconfig @@ -44,6 +44,16 @@ config DISABLE_ENVIRON bool "Disable environment variable support" default DEFAULT_SMALL +config DISABLE_SIGNALS + bool "Disable signal support" + default DEFAULT_SMALL + ---help--- + Disabling the signal mechanism significantly reduces system footprint and complexity. + It can also improve real-time performance during thread creation and context switching. + However, it removes or degrades several major POSIX features, including signal handling, + thread cancellation, timers, and process-related notifications. This configuration + should be enabled only when such functionality is not required. + endif # DISABLE_OS_API config DISABLE_IDLE_LOOP diff --git a/sched/group/CMakeLists.txt b/sched/group/CMakeLists.txt index cec78f235132f..3856eb4434832 100644 --- a/sched/group/CMakeLists.txt +++ b/sched/group/CMakeLists.txt @@ -27,8 +27,11 @@ set(SRCS group_setupidlefiles.c group_setuptaskfiles.c group_foreachchild.c - group_killchildren.c - group_signal.c) + group_killchildren.c) + +if(NOT CONFIG_DISABLE_SIGNALS) + list(APPEND SRCS group_signal.c) +endif() if(CONFIG_SCHED_HAVE_PARENT) if(CONFIG_SCHED_CHILD_STATUS) diff --git a/sched/group/Make.defs b/sched/group/Make.defs index 61f0a03ec9a21..9042529116e01 100644 --- a/sched/group/Make.defs +++ b/sched/group/Make.defs @@ -22,7 +22,11 @@ CSRCS += group_create.c group_join.c group_leave.c CSRCS += group_setupidlefiles.c group_setuptaskfiles.c -CSRCS += group_foreachchild.c group_killchildren.c group_signal.c +CSRCS += group_foreachchild.c group_killchildren.c + +ifneq ($(CONFIG_DISABLE_SIGNALS),y) +CSRCS += group_signal.c +endif ifeq ($(CONFIG_SCHED_HAVE_PARENT),y) ifeq ($(CONFIG_SCHED_CHILD_STATUS),y) diff --git a/sched/group/group_leave.c b/sched/group/group_leave.c index 0ea281250de2c..a13430109bb02 100644 --- a/sched/group/group_leave.c +++ b/sched/group/group_leave.c @@ -87,8 +87,9 @@ group_release(FAR struct task_group_s *group, uint8_t ttype) #endif /* Release pending signals */ - +#ifndef CONFIG_DISABLE_SIGNALS nxsig_release(group); +#endif #ifndef CONFIG_DISABLE_PTHREAD /* Release pthread resources */ diff --git a/sched/init/nx_start.c b/sched/init/nx_start.c index 3f4a4e1820c75..db14564f164c8 100644 --- a/sched/init/nx_start.c +++ b/sched/init/nx_start.c @@ -643,8 +643,9 @@ void nx_start(void) #endif /* Initialize the signal facility (if in link) */ - +#ifndef CONFIG_DISABLE_SIGNALS nxsig_initialize(); +#endif #if !defined(CONFIG_DISABLE_MQUEUE) || !defined(CONFIG_DISABLE_MQUEUE_SYSV) /* Initialize the named message queue facility (if in link) */ diff --git a/sched/misc/assert.c b/sched/misc/assert.c index c9cb58ac4cc2d..ba95c81edea06 100644 --- a/sched/misc/assert.c +++ b/sched/misc/assert.c @@ -405,7 +405,9 @@ static void dump_task(FAR struct tcb_s *tcb, FAR void *arg) #endif " %3d %-8s %-7s %-3c" " %-18s" +#ifndef CONFIG_DISABLE_SIGNALS " " SIGSET_FMT +#endif " %p" " %7zu" #ifdef CONFIG_STACK_COLORATION @@ -427,7 +429,9 @@ static void dump_task(FAR struct tcb_s *tcb, FAR void *arg) >> TCB_FLAG_TTYPE_SHIFT] , tcb->flags & TCB_FLAG_EXIT_PROCESSING ? 'P' : '-' , state +#ifndef CONFIG_DISABLE_SIGNALS , SIGSET_ELEM(&tcb->sigprocmask) +#endif , tcb->stack_base_ptr , tcb->adj_stack_size #ifdef CONFIG_STACK_COLORATION diff --git a/sched/pthread/pthread_exit.c b/sched/pthread/pthread_exit.c index 494a00c3409cd..0d8e91560789e 100644 --- a/sched/pthread/pthread_exit.c +++ b/sched/pthread/pthread_exit.c @@ -65,7 +65,9 @@ void nx_pthread_exit(FAR void *exit_value) { FAR struct tcb_s *tcb = this_task(); +#ifndef CONFIG_DISABLE_SIGNALS sigset_t set; +#endif int status; sinfo("exit_value=%p\n", exit_value); @@ -75,9 +77,10 @@ void nx_pthread_exit(FAR void *exit_value) /* Block any signal actions that would awaken us while were * are performing the JOIN handshake. */ - +#ifndef CONFIG_DISABLE_SIGNALS sigfillset(&set); nxsig_procmask(SIG_SETMASK, &set, NULL); +#endif /* Complete pending join operations */ diff --git a/sched/signal/CMakeLists.txt b/sched/signal/CMakeLists.txt index 715db0a776baa..eeec50096e3a7 100644 --- a/sched/signal/CMakeLists.txt +++ b/sched/signal/CMakeLists.txt @@ -19,38 +19,39 @@ # the License. # # ############################################################################## +if(NOT CONFIG_DISABLE_SIGNALS) + set(SRCS + sig_initialize.c + sig_action.c + sig_procmask.c + sig_pending.c + sig_suspend.c + sig_kill.c + sig_tgkill.c + sig_queue.c + sig_waitinfo.c + sig_timedwait.c + sig_findaction.c + sig_allocpendingsigaction.c + sig_releasependingsigaction.c + sig_unmaskpendingsignal.c + sig_removependingsignal.c + sig_releasependingsignal.c + sig_lowest.c + sig_notification.c + sig_cleanup.c + sig_dispatch.c + sig_deliver.c + sig_pause.c + sig_nanosleep.c + sig_usleep.c + sig_sleep.c + sig_ppoll.c + sig_pselect.c) -set(SRCS - sig_initialize.c - sig_action.c - sig_procmask.c - sig_pending.c - sig_suspend.c - sig_kill.c - sig_tgkill.c - sig_queue.c - sig_waitinfo.c - sig_timedwait.c - sig_findaction.c - sig_allocpendingsigaction.c - sig_releasependingsigaction.c - sig_unmaskpendingsignal.c - sig_removependingsignal.c - sig_releasependingsignal.c - sig_lowest.c - sig_notification.c - sig_cleanup.c - sig_dispatch.c - sig_deliver.c - sig_pause.c - sig_nanosleep.c - sig_usleep.c - sig_sleep.c - sig_ppoll.c - sig_pselect.c) + if(CONFIG_SIG_DEFAULT) + list(APPEND SRCS sig_default.c) + endif() -if(CONFIG_SIG_DEFAULT) - list(APPEND SRCS sig_default.c) + target_sources(sched PRIVATE ${SRCS}) endif() - -target_sources(sched PRIVATE ${SRCS}) diff --git a/sched/signal/Make.defs b/sched/signal/Make.defs index cfb2ddc006080..bbd440adc47b2 100644 --- a/sched/signal/Make.defs +++ b/sched/signal/Make.defs @@ -19,7 +19,7 @@ # under the License. # ############################################################################ - +ifneq ($(CONFIG_DISABLE_SIGNALS),y) CSRCS += sig_initialize.c CSRCS += sig_action.c sig_procmask.c sig_pending.c sig_suspend.c CSRCS += sig_kill.c sig_tgkill.c sig_queue.c sig_waitinfo.c sig_timedwait.c @@ -38,3 +38,4 @@ endif DEPPATH += --dep-path signal VPATH += :signal +endif \ No newline at end of file diff --git a/sched/task/task_exithook.c b/sched/task/task_exithook.c index 268931b247df1..ff4cebe3f40cb 100644 --- a/sched/task/task_exithook.c +++ b/sched/task/task_exithook.c @@ -454,8 +454,9 @@ void nxtask_exithook(FAR struct tcb_s *tcb, int status) group_leave(tcb); /* Deallocate anything left in the TCB's queues */ - +#ifndef CONFIG_DISABLE_SIGNALS nxsig_cleanup(tcb); /* Deallocate Signal lists */ +#endif #ifdef CONFIG_SCHED_DUMP_LEAK if ((tcb->flags & TCB_FLAG_TTYPE_MASK) == TCB_FLAG_TTYPE_KERNEL) diff --git a/sched/task/task_restart.c b/sched/task/task_restart.c index 07566a3d99e93..cbc4f4feec90d 100644 --- a/sched/task/task_restart.c +++ b/sched/task/task_restart.c @@ -119,8 +119,10 @@ static void nxtask_reset_task(FAR struct tcb_s *tcb, bool remove) /* Deallocate anything left in the TCB's signal queues */ +#ifndef CONFIG_DISABLE_SIGNALS nxsig_cleanup(tcb); /* Deallocate Signal lists */ sigemptyset(&tcb->sigprocmask); /* Reset sigprocmask */ +#endif /* Reset the current task priority */ diff --git a/sched/task/task_setup.c b/sched/task/task_setup.c index 7b893b4b3b8f5..7f2ba5b75591e 100644 --- a/sched/task/task_setup.c +++ b/sched/task/task_setup.c @@ -403,7 +403,6 @@ static int nxthread_setup_scheduler(FAR struct tcb_s *tcb, int priority, start_t start, CODE void *entry, uint8_t ttype) { - FAR struct tcb_s *rtcb = this_task(); irqstate_t flags; int ret; @@ -457,11 +456,13 @@ static int nxthread_setup_scheduler(FAR struct tcb_s *tcb, int priority, nxtask_inherit_affinity(tcb); #endif +#ifndef CONFIG_DISABLE_SIGNALS /* exec(), pthread_create(), task_create(), and vfork() all * inherit the signal mask of the parent thread. */ - tcb->sigprocmask = rtcb->sigprocmask; + tcb->sigprocmask = this_task()->sigprocmask; +#endif /* Initialize the task state. It does not get a valid state * until it is activated. diff --git a/sched/task/task_spawnparms.c b/sched/task/task_spawnparms.c index 7022b5d5767bf..df31efc30f6ce 100644 --- a/sched/task/task_spawnparms.c +++ b/sched/task/task_spawnparms.c @@ -157,6 +157,7 @@ int spawn_execattrs(pid_t pid, FAR const posix_spawnattr_t *attr) /* Firstly, set the signal mask if requested to do so */ +#ifndef CONFIG_DISABLE_SIGNALS if ((attr->flags & POSIX_SPAWN_SETSIGMASK) != 0) { FAR struct tcb_s *tcb = nxsched_get_tcb(pid); @@ -165,6 +166,7 @@ int spawn_execattrs(pid_t pid, FAR const posix_spawnattr_t *attr) tcb->sigprocmask = attr->sigmask; } } +#endif /* If we are only setting the priority, then call sched_setparm() * to set the priority of the of the new task. diff --git a/sched/timer/timer_settime.c b/sched/timer/timer_settime.c index f69c3fa83ac8d..59639f1fe8cab 100644 --- a/sched/timer/timer_settime.c +++ b/sched/timer/timer_settime.c @@ -72,12 +72,14 @@ static void timer_timeout(wdparm_t itimer); static inline void timer_signotify(FAR struct posix_timer_s *timer) { -#ifdef CONFIG_SIG_EVTHREAD +#ifndef CONFIG_DISABLE_SIGNALS +# ifdef CONFIG_SIG_EVTHREAD DEBUGVERIFY(nxsig_notification(timer->pt_owner, &timer->pt_event, SI_TIMER, &timer->pt_work)); -#else +# else DEBUGVERIFY(nxsig_notification(timer->pt_owner, &timer->pt_event, SI_TIMER, NULL)); +# endif #endif } From 776072edd22977f580156dc5dfd846e7027404b7 Mon Sep 17 00:00:00 2001 From: wangchengdong Date: Tue, 25 Nov 2025 09:57:28 +0800 Subject: [PATCH 2/2] arch: Add architecture-level support for disabling signals Update architecture-level signal implementations to support optional signal disabling. Signed-off-by: Chengdong Wang --- arch/arm/src/arm/CMakeLists.txt | 6 ++++-- arch/arm/src/arm/Make.defs | 8 ++++++-- arch/arm/src/armv6-m/CMakeLists.txt | 6 ++++-- arch/arm/src/armv6-m/Make.defs | 6 +++++- arch/arm/src/armv6-m/arm_doirq.c | 2 ++ arch/arm/src/armv7-a/CMakeLists.txt | 6 ++++-- arch/arm/src/armv7-a/Make.defs | 5 ++++- arch/arm/src/armv7-m/CMakeLists.txt | 6 ++++-- arch/arm/src/armv7-m/Make.defs | 5 ++++- arch/arm/src/armv7-m/arm_doirq.c | 3 +++ arch/arm/src/armv7-r/CMakeLists.txt | 6 ++++-- arch/arm/src/armv7-r/Make.defs | 5 ++++- arch/arm/src/armv8-m/CMakeLists.txt | 6 ++++-- arch/arm/src/armv8-m/Make.defs | 8 ++++++-- arch/arm/src/armv8-m/arm_doirq.c | 3 +++ arch/arm/src/armv8-r/CMakeLists.txt | 6 ++++-- arch/arm/src/armv8-r/Make.defs | 5 ++++- arch/arm/src/tlsr82/tc32/Make.defs | 6 ++++-- arch/arm64/src/common/CMakeLists.txt | 5 ++++- arch/arm64/src/common/Make.defs | 5 ++++- arch/avr/src/at32uc3/Make.defs | 6 +++++- arch/avr/src/at90usb/Make.defs | 6 +++++- arch/avr/src/atmega/Make.defs | 6 +++++- arch/avr/src/avrdx/Make.defs | 6 +++++- arch/mips/src/pic32mx/Make.defs | 6 +++++- arch/mips/src/pic32mz/Make.defs | 6 +++++- arch/misoc/src/lm32/Make.defs | 8 ++++++-- arch/misoc/src/minerva/Make.defs | 6 +++++- arch/or1k/src/mor1kx/Make.defs | 5 ++++- arch/renesas/src/m16c/Make.defs | 5 ++++- arch/renesas/src/rx65n/Make.defs | 6 +++++- arch/renesas/src/sh1/Make.defs | 7 ++++++- arch/risc-v/src/common/CMakeLists.txt | 7 +++++-- arch/risc-v/src/common/Make.defs | 8 ++++++-- arch/sim/src/Makefile | 8 ++++++-- arch/sim/src/sim/CMakeLists.txt | 6 ++++-- arch/sparc/src/sparc_v8/Make.defs | 8 ++++++-- arch/tricore/src/common/CMakeLists.txt | 6 ++++-- arch/tricore/src/common/Make.defs | 6 ++++-- arch/x86/src/qemu/Make.defs | 8 ++++++-- arch/x86_64/src/intel64/CMakeLists.txt | 6 ++++-- arch/x86_64/src/intel64/Make.defs | 8 ++++++-- arch/xtensa/src/common/CMakeLists.txt | 6 ++++-- arch/xtensa/src/common/Make.defs | 8 ++++++-- arch/z16/src/z16f/Make.defs | 6 +++++- arch/z80/src/ez80/Make.defs | 5 ++++- arch/z80/src/z180/Make.defs | 8 +++++++- arch/z80/src/z8/Make.defs | 5 ++++- arch/z80/src/z80/Make.defs | 5 ++++- 49 files changed, 226 insertions(+), 69 deletions(-) diff --git a/arch/arm/src/arm/CMakeLists.txt b/arch/arm/src/arm/CMakeLists.txt index 7441d85d92724..3b0ce0d50fa4b 100644 --- a/arch/arm/src/arm/CMakeLists.txt +++ b/arch/arm/src/arm/CMakeLists.txt @@ -29,8 +29,6 @@ list( arm_doirq.c arm_initialstate.c arm_prefetchabort.c - arm_schedulesigaction.c - arm_sigdeliver.c arm_syscall.c arm_tcbinfo.c arm_undefinedinsn.c @@ -39,6 +37,10 @@ list( arm_vectortab.S arm_saveusercontext.S) +if(NOT CONFIG_DISABLE_SIGNALS) + list(APPEND SRCS arm_schedulesigaction.c arm_sigdeliver.c) +endif() + if(CONFIG_PAGING) list(APPEND SRCS arm_pginitialize.c arm_checkmapping.c arm_allocpage.c arm_va2pte.c) diff --git a/arch/arm/src/arm/Make.defs b/arch/arm/src/arm/Make.defs index faff6009b70f9..61000b6a1b896 100644 --- a/arch/arm/src/arm/Make.defs +++ b/arch/arm/src/arm/Make.defs @@ -27,8 +27,8 @@ include common/Make.defs HEAD_ASRC = arm_head.S CMN_CSRCS += arm_dataabort.c arm_doirq.c arm_initialstate.c -CMN_CSRCS += arm_prefetchabort.c arm_schedulesigaction.c -CMN_CSRCS += arm_sigdeliver.c arm_syscall.c arm_tcbinfo.c +CMN_CSRCS += arm_prefetchabort.c +CMN_CSRCS += arm_syscall.c arm_tcbinfo.c CMN_CSRCS += arm_undefinedinsn.c CMN_ASRCS += arm_cache.S arm_vectors.S arm_vectortab.S @@ -37,3 +37,7 @@ CMN_ASRCS += arm_saveusercontext.S ifeq ($(CONFIG_LEGACY_PAGING),y) CMN_CSRCS += arm_pginitialize.c arm_checkmapping.c arm_allocpage.c arm_va2pte.c endif + +ifneq ($(CONFIG_DISABLE_SIGNALS),y) + CMN_CSRCS +=arm_schedulesigaction.c arm_sigdeliver.c +endif \ No newline at end of file diff --git a/arch/arm/src/armv6-m/CMakeLists.txt b/arch/arm/src/armv6-m/CMakeLists.txt index ccbebc9b490d7..0018a284b840d 100644 --- a/arch/arm/src/armv6-m/CMakeLists.txt +++ b/arch/arm/src/armv6-m/CMakeLists.txt @@ -27,14 +27,16 @@ set(SRCS arm_doirq.c arm_hardfault.c arm_initialstate.c - arm_schedulesigaction.c - arm_sigdeliver.c arm_svcall.c arm_systemreset.c arm_tcbinfo.c arm_trigger_irq.c arm_vectors.c) +if(NOT CONFIG_DISABLE_SIGNALS) + list(APPEND SRCS arm_schedulesigaction.c arm_sigdeliver.c) +endif() + if((DEFINED CONFIG_DEBUG_FEATURES AND CONFIG_DEBUG_FEATURES) OR (DEFINED CONFIG_ARM_COREDUMP_REGION AND CONFIG_ARM_COREDUMP_REGION)) list(APPEND SRCS arm_dumpnvic.c) diff --git a/arch/arm/src/armv6-m/Make.defs b/arch/arm/src/armv6-m/Make.defs index 0bd98bc57c4ea..6b55754fe6460 100644 --- a/arch/arm/src/armv6-m/Make.defs +++ b/arch/arm/src/armv6-m/Make.defs @@ -27,10 +27,14 @@ include common/Make.defs CMN_ASRCS += arm_exception.S arm_saveusercontext.S CMN_CSRCS += arm_cpuinfo.c arm_doirq.c arm_hardfault.c arm_initialstate.c -CMN_CSRCS += arm_schedulesigaction.c arm_sigdeliver.c arm_svcall.c +CMN_CSRCS += arm_svcall.c CMN_CSRCS += arm_systemreset.c arm_tcbinfo.c CMN_CSRCS += arm_trigger_irq.c +ifneq ($(CONFIG_DISABLE_SIGNALS),y) + CMN_CSRCS +=arm_schedulesigaction.c arm_sigdeliver.c +endif + ifneq ($(CONFIG_ARCH_HAVE_CUSTOM_VECTORS),y) CMN_CSRCS += arm_vectors.c endif diff --git a/arch/arm/src/armv6-m/arm_doirq.c b/arch/arm/src/armv6-m/arm_doirq.c index 24ef364482f53..0aa1a72fa23f7 100644 --- a/arch/arm/src/armv6-m/arm_doirq.c +++ b/arch/arm/src/armv6-m/arm_doirq.c @@ -86,12 +86,14 @@ uint32_t *arm_doirq(int irq, uint32_t *regs) irq_dispatch(irq, regs); #endif +#ifndef CONFIG_DISABLE_SIGNALS if (tcb->sigdeliver) { /* Pendsv able to access running tcb with no critical section */ up_schedule_sigaction(tcb); } +#endif up_irq_save(); } diff --git a/arch/arm/src/armv7-a/CMakeLists.txt b/arch/arm/src/armv7-a/CMakeLists.txt index dcb6cdad90729..9265694317406 100644 --- a/arch/arm/src/armv7-a/CMakeLists.txt +++ b/arch/arm/src/armv7-a/CMakeLists.txt @@ -43,14 +43,16 @@ list( arm_initialstate.c arm_mmu.c arm_prefetchabort.c - arm_schedulesigaction.c - arm_sigdeliver.c arm_syscall.c arm_tcbinfo.c arm_undefinedinsn.c arm_perf.c cp15_cacheops.c) +if(NOT CONFIG_DISABLE_SIGNALS) + list(APPEND SRCS arm_schedulesigaction.c arm_sigdeliver.c) +endif() + if(CONFIG_ARMV7A_GICv2M) list(APPEND SRCS arm_gicv2m.c) endif() diff --git a/arch/arm/src/armv7-a/Make.defs b/arch/arm/src/armv7-a/Make.defs index 690226f943f0b..f163fea58d614 100644 --- a/arch/arm/src/armv7-a/Make.defs +++ b/arch/arm/src/armv7-a/Make.defs @@ -38,10 +38,13 @@ CMN_ASRCS += arm_cpuhead.S arm_vectors.S arm_saveusercontext.S CMN_CSRCS += arm_cache.c arm_cpuinfo.c arm_dataabort.c CMN_CSRCS += arm_doirq.c arm_gicv2.c arm_gicv2_dump.c CMN_CSRCS += arm_initialstate.c arm_mmu.c arm_prefetchabort.c -CMN_CSRCS += arm_schedulesigaction.c arm_sigdeliver.c CMN_CSRCS += arm_syscall.c arm_tcbinfo.c arm_undefinedinsn.c CMN_CSRCS += arm_perf.c cp15_cacheops.c +ifneq ($(CONFIG_DISABLE_SIGNALS),y) + CMN_CSRCS +=arm_schedulesigaction.c arm_sigdeliver.c +endif + ifeq ($(CONFIG_ARMV7A_GICv2M),y) CMN_CSRCS += arm_gicv2m.c endif diff --git a/arch/arm/src/armv7-m/CMakeLists.txt b/arch/arm/src/armv7-m/CMakeLists.txt index c8d415ea927bf..bbbe5695179a2 100644 --- a/arch/arm/src/armv7-m/CMakeLists.txt +++ b/arch/arm/src/armv7-m/CMakeLists.txt @@ -35,8 +35,6 @@ set(SRCS arm_itm.c arm_memfault.c arm_perf.c - arm_schedulesigaction.c - arm_sigdeliver.c arm_svcall.c arm_systemreset.c arm_tcbinfo.c @@ -45,6 +43,10 @@ set(SRCS arm_vectors.c arm_dbgmonitor.c) +if(NOT CONFIG_DISABLE_SIGNALS) + list(APPEND SRCS arm_schedulesigaction.c arm_sigdeliver.c) +endif() + if(CONFIG_ARMV7M_SYSTICK) list(APPEND SRCS arm_systick.c) endif() diff --git a/arch/arm/src/armv7-m/Make.defs b/arch/arm/src/armv7-m/Make.defs index 8edd3e1ca9c01..017b76f1f5895 100644 --- a/arch/arm/src/armv7-m/Make.defs +++ b/arch/arm/src/armv7-m/Make.defs @@ -29,10 +29,13 @@ CMN_ASRCS += arm_exception.S arm_saveusercontext.S CMN_CSRCS += arm_busfault.c arm_cache.c arm_cpuinfo.c arm_doirq.c CMN_CSRCS += arm_hardfault.c arm_initialstate.c arm_itm.c CMN_CSRCS += arm_memfault.c arm_perf.c -CMN_CSRCS += arm_schedulesigaction.c arm_sigdeliver.c CMN_CSRCS += arm_svcall.c arm_systemreset.c arm_tcbinfo.c CMN_CSRCS += arm_trigger_irq.c arm_usagefault.c arm_dbgmonitor.c +ifneq ($(CONFIG_DISABLE_SIGNALS),y) + CMN_CSRCS +=arm_schedulesigaction.c arm_sigdeliver.c +endif + ifneq ($(CONFIG_ARCH_HAVE_CUSTOM_VECTORS),y) CMN_CSRCS += arm_vectors.c endif diff --git a/arch/arm/src/armv7-m/arm_doirq.c b/arch/arm/src/armv7-m/arm_doirq.c index c3126341e3360..ac8cd6c926b8d 100644 --- a/arch/arm/src/armv7-m/arm_doirq.c +++ b/arch/arm/src/armv7-m/arm_doirq.c @@ -86,12 +86,15 @@ uint32_t *arm_doirq(int irq, uint32_t *regs) irq_dispatch(irq, regs); #endif + +#ifndef CONFIG_DISABLE_SIGNALS if (tcb->sigdeliver) { /* Pendsv able to access running tcb with no critical section */ up_schedule_sigaction(tcb); } +#endif up_irq_save(); } diff --git a/arch/arm/src/armv7-r/CMakeLists.txt b/arch/arm/src/armv7-r/CMakeLists.txt index 5006f13659f59..12b684af3cba1 100644 --- a/arch/arm/src/armv7-r/CMakeLists.txt +++ b/arch/arm/src/armv7-r/CMakeLists.txt @@ -39,14 +39,16 @@ list( arm_doirq.c arm_initialstate.c arm_prefetchabort.c - arm_schedulesigaction.c - arm_sigdeliver.c arm_syscall.c arm_tcbinfo.c arm_undefinedinsn.c arm_perf.c cp15_cacheops.c) +if(NOT CONFIG_DISABLE_SIGNALS) + list(APPEND SRCS arm_schedulesigaction.c arm_sigdeliver.c) +endif() + if(NOT CONFIG_ARCH_CHIP STREQUAL tms570) list(APPEND SRCS arm_gicv2.c arm_gicv2_dump.c) endif() diff --git a/arch/arm/src/armv7-r/Make.defs b/arch/arm/src/armv7-r/Make.defs index a0c29c9d72cc1..6d200641f6118 100644 --- a/arch/arm/src/armv7-r/Make.defs +++ b/arch/arm/src/armv7-r/Make.defs @@ -34,7 +34,6 @@ HEAD_ASRC += arm_vectortab.S CMN_CSRCS += arm_cache.c arm_cpuinfo.c arm_dataabort.c CMN_CSRCS += arm_doirq.c arm_gicv2.c arm_gicv2_dump.c CMN_CSRCS += arm_initialstate.c arm_prefetchabort.c -CMN_CSRCS += arm_schedulesigaction.c arm_sigdeliver.c CMN_CSRCS += arm_syscall.c arm_tcbinfo.c arm_undefinedinsn.c CMN_CSRCS += arm_perf.c cp15_cacheops.c @@ -42,6 +41,10 @@ CMN_CSRCS += arm_perf.c cp15_cacheops.c CMN_ASRCS += arm_head.S arm_vectors.S arm_saveusercontext.S +ifneq ($(CONFIG_DISABLE_SIGNALS),y) + CMN_CSRCS +=arm_schedulesigaction.c arm_sigdeliver.c +endif + ifeq ($(CONFIG_ARMV7R_HAVE_PTM), y) CMN_CSRCS += arm_timer.c endif diff --git a/arch/arm/src/armv8-m/CMakeLists.txt b/arch/arm/src/armv8-m/CMakeLists.txt index bd7dff82c6e42..3371354d4a5ab 100644 --- a/arch/arm/src/armv8-m/CMakeLists.txt +++ b/arch/arm/src/armv8-m/CMakeLists.txt @@ -34,10 +34,8 @@ set(SRCS arm_memfault.c arm_perf.c arm_sau.c - arm_schedulesigaction.c arm_securefault.c arm_secure_irq.c - arm_sigdeliver.c arm_svcall.c arm_systemreset.c arm_tcbinfo.c @@ -45,6 +43,10 @@ set(SRCS arm_usagefault.c arm_vectors.c) +if(NOT CONFIG_DISABLE_SIGNALS) + list(APPEND SRCS arm_schedulesigaction.c arm_sigdeliver.c) +endif() + if(CONFIG_ARMV8M_SYSTICK) list(APPEND SRCS arm_systick.c) endif() diff --git a/arch/arm/src/armv8-m/Make.defs b/arch/arm/src/armv8-m/Make.defs index 0d1a8222a3186..68e640ad66e30 100644 --- a/arch/arm/src/armv8-m/Make.defs +++ b/arch/arm/src/armv8-m/Make.defs @@ -29,11 +29,15 @@ CMN_ASRCS += arm_exception.S arm_saveusercontext.S CMN_CSRCS += arm_busfault.c arm_cache.c arm_cpuinfo.c arm_doirq.c CMN_CSRCS += arm_hardfault.c arm_initialstate.c arm_itm.c CMN_CSRCS += arm_memfault.c arm_perf.c arm_sau.c -CMN_CSRCS += arm_schedulesigaction.c arm_securefault.c arm_secure_irq.c -CMN_CSRCS += arm_sigdeliver.c arm_svcall.c +CMN_CSRCS += arm_securefault.c arm_secure_irq.c +CMN_CSRCS += arm_svcall.c CMN_CSRCS += arm_systemreset.c arm_tcbinfo.c CMN_CSRCS += arm_trigger_irq.c arm_usagefault.c arm_dbgmonitor.c +ifneq ($(CONFIG_DISABLE_SIGNALS),y) + CMN_CSRCS +=arm_schedulesigaction.c arm_sigdeliver.c +endif + ifneq ($(CONFIG_ARCH_HAVE_CUSTOM_VECTORS),y) CMN_CSRCS += arm_vectors.c endif diff --git a/arch/arm/src/armv8-m/arm_doirq.c b/arch/arm/src/armv8-m/arm_doirq.c index a86de9f7e78e1..271cb84e1a3fd 100644 --- a/arch/arm/src/armv8-m/arm_doirq.c +++ b/arch/arm/src/armv8-m/arm_doirq.c @@ -97,12 +97,15 @@ uint32_t *arm_doirq(int irq, uint32_t *regs) irq_dispatch(irq, regs); #endif + +#ifndef CONFIG_DISABLE_SIGNALS if (tcb->sigdeliver) { /* Pendsv able to access running tcb with no critical section */ up_schedule_sigaction(tcb); } +#endif up_irq_save(); } diff --git a/arch/arm/src/armv8-r/CMakeLists.txt b/arch/arm/src/armv8-r/CMakeLists.txt index 23dcc0fd03320..d6d2de9139765 100644 --- a/arch/arm/src/armv8-r/CMakeLists.txt +++ b/arch/arm/src/armv8-r/CMakeLists.txt @@ -41,14 +41,16 @@ list( arm_gicv3.c arm_initialstate.c arm_prefetchabort.c - arm_schedulesigaction.c - arm_sigdeliver.c arm_syscall.c arm_tcbinfo.c arm_undefinedinsn.c arm_perf.c cp15_cacheops.c) +if(NOT CONFIG_DISABLE_SIGNALS) + list(APPEND SRCS arm_schedulesigaction.c arm_sigdeliver.c) +endif() + if(CONFIG_ARCH_FPU) list(APPEND SRCS arm_fpucmp.c arm_fpuconfig.S) endif() diff --git a/arch/arm/src/armv8-r/Make.defs b/arch/arm/src/armv8-r/Make.defs index 8883d8e55f48c..21fc1bfe59a0e 100644 --- a/arch/arm/src/armv8-r/Make.defs +++ b/arch/arm/src/armv8-r/Make.defs @@ -34,7 +34,6 @@ HEAD_ASRC += arm_vectortab.S CMN_CSRCS += arm_timer.c arm_cache.c arm_cpuinfo.c arm_dataabort.c CMN_CSRCS += arm_doirq.c arm_gicv3.c CMN_CSRCS += arm_initialstate.c arm_prefetchabort.c -CMN_CSRCS += arm_schedulesigaction.c arm_sigdeliver.c CMN_CSRCS += arm_syscall.c arm_tcbinfo.c arm_undefinedinsn.c CMN_CSRCS += arm_perf.c cp15_cacheops.c @@ -46,6 +45,10 @@ CMN_ASRCS += arm_head.S arm_vectors.S arm_saveusercontext.S # CMN_CSRCS += arm_mpu.c # endif +ifneq ($(CONFIG_DISABLE_SIGNALS),y) + CMN_CSRCS +=arm_schedulesigaction.c arm_sigdeliver.c +endif + ifeq ($(CONFIG_ARCH_FPU),y) CMN_CSRCS += arm_fpucmp.c CMN_ASRCS += arm_fpuconfig.S diff --git a/arch/arm/src/tlsr82/tc32/Make.defs b/arch/arm/src/tlsr82/tc32/Make.defs index 8be5e2e032416..97d409a426efb 100644 --- a/arch/arm/src/tlsr82/tc32/Make.defs +++ b/arch/arm/src/tlsr82/tc32/Make.defs @@ -48,8 +48,6 @@ CMN_ASRCS := $(filter-out $(TC32_ASRCS_FILTER), $(CMN_ASRCS)) # Common files in arch/arm/src/armv6-m -CMN_CSRCS += arm_sigdeliver.c - # Common files in arch/arm/src/tlsr82/tc32 CMN_ASRCS += tc32_fullcontextrestore.S tc32_switchcontext.S @@ -58,6 +56,10 @@ CMN_ASRCS += tc32_saveusercontext.S tc32_exception.S CMN_CSRCS += tc32_doirq.c tc32_initialstate.c tc32_schedulesigaction.c CMN_CSRCS += tc32_syscall.c tc32_udelay.c +ifneq ($(CONFIG_DISABLE_SIGNALS),y) + CMN_CSRCS +=tc32_schedulesigaction.c arm_sigdeliver.c +endif + ifeq ($(CONFIG_SCHED_BACKTRACE),y) CMN_CSRCS += tc32_backtrace.c endif diff --git a/arch/arm64/src/common/CMakeLists.txt b/arch/arm64/src/common/CMakeLists.txt index 4a8c826755bd1..bff925a625a21 100644 --- a/arch/arm64/src/common/CMakeLists.txt +++ b/arch/arm64/src/common/CMakeLists.txt @@ -32,7 +32,6 @@ list(APPEND SRCS arm64_initialize.c arm64_initialstate.c arm64_boot.c) list(APPEND SRCS arm64_nputs.c arm64_createstack.c) list(APPEND SRCS arm64_releasestack.c arm64_stackframe.c arm64_usestack.c) list(APPEND SRCS arm64_exit.c arm64_fork.c) -list(APPEND SRCS arm64_schedulesigaction.c arm64_sigdeliver.c) list(APPEND SRCS arm64_getintstack.c arm64_registerdump.c) list(APPEND SRCS arm64_perf.c arm64_tcbinfo.c) @@ -44,6 +43,10 @@ list(APPEND SRCS arm64_syscall.c) # Use common heap allocation for now (may need to be customized later) list(APPEND SRCS arm64_allocateheap.c) +if(NOT CONFIG_DISABLE_SIGNALS) + list(APPEND SRCS arm64_schedulesigaction.c arm64_sigdeliver.c) +endif() + if(NOT CONFIG_ARCH_IDLE_CUSTOM) list(APPEND SRCS arm64_idle.c) endif() diff --git a/arch/arm64/src/common/Make.defs b/arch/arm64/src/common/Make.defs index 2d8b1759e5557..cad4879be4f5d 100644 --- a/arch/arm64/src/common/Make.defs +++ b/arch/arm64/src/common/Make.defs @@ -39,7 +39,6 @@ CMN_CSRCS = arm64_initialize.c arm64_initialstate.c arm64_boot.c CMN_CSRCS += arm64_nputs.c arm64_createstack.c CMN_CSRCS += arm64_releasestack.c arm64_stackframe.c arm64_usestack.c CMN_CSRCS += arm64_exit.c arm64_fork.c -CMN_CSRCS += arm64_schedulesigaction.c arm64_sigdeliver.c CMN_CSRCS += arm64_getintstack.c arm64_registerdump.c CMN_CSRCS += arm64_perf.c arm64_tcbinfo.c @@ -53,6 +52,10 @@ CMN_CSRCS += arm64_hwdebug.c # Use common heap allocation for now (may need to be customized later) CMN_CSRCS += arm64_allocateheap.c +ifneq ($(CONFIG_DISABLE_SIGNALS),y) + CMN_CSRCS +=arm64_schedulesigaction.c arm64_sigdeliver.c +endif + ifneq ($(CONFIG_ARCH_IDLE_CUSTOM),y) CMN_CSRCS += arm64_idle.c endif diff --git a/arch/avr/src/at32uc3/Make.defs b/arch/avr/src/at32uc3/Make.defs index ea6485cde7d38..4990bd62668d8 100644 --- a/arch/avr/src/at32uc3/Make.defs +++ b/arch/avr/src/at32uc3/Make.defs @@ -30,7 +30,7 @@ CMN_ASRCS = avr_exceptions.S avr_fullcontextrestore.S avr_doswitch.S avr_saveus CMN_CSRCS = avr_allocateheap.c avr_copystate.c avr_createstack.c avr_exit.c CMN_CSRCS += avr_initialize.c avr_initialstate.c avr_idle.c CMN_CSRCS += avr_modifyreg8.c avr_modifyreg16.c avr_modifyreg32.c avr_releasestack.c -CMN_CSRCS += avr_schedulesigaction.c avr_sigdeliver.c avr_stackframe.c avr_switchcontext.c +CMN_CSRCS += avr_stackframe.c avr_switchcontext.c CMN_CSRCS += avr_usestack.c avr_doirq.c avr_nputs.c avr_registerdump.c avr_getintstack.c # Required AT32UC3 files @@ -40,6 +40,10 @@ CHIP_CSRCS += at32uc3_lowconsole.c at32uc3_lowinit.c at32uc3_serial.c # Configuration-dependent AT32UC3 files +ifneq ($(CONFIG_DISABLE_SIGNALS),y) + CMN_CSRCS +=avr_schedulesigaction.c avr_sigdeliver.c +endif + ifneq ($(CONFIG_SCHED_TICKLESS),y) CHIP_CSRCS += at32uc3_timerisr.c endif diff --git a/arch/avr/src/at90usb/Make.defs b/arch/avr/src/at90usb/Make.defs index 71138b4f9a94a..6bb1303bbbe1b 100644 --- a/arch/avr/src/at90usb/Make.defs +++ b/arch/avr/src/at90usb/Make.defs @@ -32,11 +32,15 @@ CMN_CSRCS += avr_doirq.c avr_exit.c avr_idle.c avr_irq.c CMN_CSRCS += avr_initialize.c avr_initialstate.c avr_lowputs.c CMN_CSRCS += avr_modifyreg8.c avr_modifyreg16.c avr_modifyreg32.c CMN_CSRCS += avr_nputs.c avr_releasestack.c avr_registerdump.c -CMN_CSRCS += avr_schedulesigaction.c avr_sigdeliver.c avr_getintstack.c +CMN_CSRCS += avr_getintstack.c CMN_CSRCS += avr_stackframe.c avr_switchcontext.c avr_usestack.c # Configuration-dependent common files +ifneq ($(CONFIG_DISABLE_SIGNALS),y) + CMN_CSRCS +=avr_schedulesigaction.c avr_sigdeliver.c +endif + ifeq ($(CONFIG_AVR_SPI),y) CMN_CSRCS += avr_spi.c endif diff --git a/arch/avr/src/atmega/Make.defs b/arch/avr/src/atmega/Make.defs index d53a0fcddabea..771d463e74237 100644 --- a/arch/avr/src/atmega/Make.defs +++ b/arch/avr/src/atmega/Make.defs @@ -32,11 +32,15 @@ CMN_CSRCS += avr_doirq.c avr_exit.c avr_idle.c avr_initialize.c CMN_CSRCS += avr_initialstate.c avr_irq.c avr_lowputs.c CMN_CSRCS += avr_modifyreg8.c avr_modifyreg16.c avr_modifyreg32.c CMN_CSRCS += avr_nputs.c avr_releasestack.c avr_registerdump.c -CMN_CSRCS += avr_schedulesigaction.c avr_sigdeliver.c avr_getintstack.c +CMN_CSRCS += avr_getintstack.c CMN_CSRCS += avr_stackframe.c avr_switchcontext.c avr_usestack.c # Configuration-dependent common files +ifneq ($(CONFIG_DISABLE_SIGNALS),y) + CMN_CSRCS +=avr_schedulesigaction.c avr_sigdeliver.c +endif + ifeq ($(CONFIG_AVR_SPI),y) CMN_CSRCS += avr_spi.c endif diff --git a/arch/avr/src/avrdx/Make.defs b/arch/avr/src/avrdx/Make.defs index fd3e06cc81e30..1805f8bc01d6b 100644 --- a/arch/avr/src/avrdx/Make.defs +++ b/arch/avr/src/avrdx/Make.defs @@ -31,11 +31,15 @@ CMN_CSRCS = avr_allocateheap.c avr_copystate.c avr_createstack.c CMN_CSRCS += avr_doirq.c avr_exit.c avr_idle.c avr_initialize.c CMN_CSRCS += avr_initialstate.c avr_irq.c avr_lowputs.c CMN_CSRCS += avr_nputs.c avr_releasestack.c avr_registerdump.c -CMN_CSRCS += avr_schedulesigaction.c avr_sigdeliver.c avr_getintstack.c +CMN_CSRCS += avr_getintstack.c CMN_CSRCS += avr_stackframe.c avr_switchcontext.c avr_usestack.c # Configuration-dependent common files +ifneq ($(CONFIG_DISABLE_SIGNALS),y) + CMN_CSRCS +=avr_schedulesigaction.c avr_sigdeliver.c +endif + ifeq ($(CONFIG_AVR_SPI),y) CMN_CSRCS += avr_spi.c endif diff --git a/arch/mips/src/pic32mx/Make.defs b/arch/mips/src/pic32mx/Make.defs index 9c0c82d5a19e9..3c8fd9ed3ce33 100644 --- a/arch/mips/src/pic32mx/Make.defs +++ b/arch/mips/src/pic32mx/Make.defs @@ -32,12 +32,16 @@ CMN_CSRCS += mips_doirq.c mips_exit.c mips_getintstack.c mips_initialize.c CMN_CSRCS += mips_initialstate.c mips_irq.c mips_lowputs.c CMN_CSRCS += mips_modifyreg8.c mips_modifyreg16.c mips_modifyreg32.c CMN_CSRCS += mips_nputs.c mips_releasestack.c mips_registerdump.c -CMN_CSRCS += mips_schedulesigaction.c mips_sigdeliver.c mips_swint0.c +CMN_CSRCS += mips_swint0.c CMN_CSRCS += mips_stackframe.c mips_switchcontext.c mips_saveusercontext.c CMN_CSRCS += mips_usestack.c mips_fork.c # Configuration dependent common files +ifneq ($(CONFIG_DISABLE_SIGNALS),y) + CMN_CSRCS +=mips_schedulesigaction.c mips_sigdeliver.c +endif + ifneq ($(CONFIG_ARCH_IDLE_CUSTOM),y) CMN_CSRCS += mips_idle.c endif diff --git a/arch/mips/src/pic32mz/Make.defs b/arch/mips/src/pic32mz/Make.defs index 0fafb6de69a06..6764fa07c1d30 100644 --- a/arch/mips/src/pic32mz/Make.defs +++ b/arch/mips/src/pic32mz/Make.defs @@ -32,12 +32,16 @@ CMN_CSRCS += mips_doirq.c mips_exit.c mips_getintstack.c mips_initialize.c CMN_CSRCS += mips_initialstate.c mips_irq.c mips_lowputs.c CMN_CSRCS += mips_modifyreg8.c mips_modifyreg16.c mips_modifyreg32.c CMN_CSRCS += mips_nputs.c mips_releasestack.c mips_registerdump.c -CMN_CSRCS += mips_schedulesigaction.c mips_sigdeliver.c mips_swint0.c +CMN_CSRCS += mips_swint0.c CMN_CSRCS += mips_stackframe.c mips_switchcontext.c mips_saveusercontext.c CMN_CSRCS += mips_usestack.c mips_fork.c # Configuration dependent common files +ifneq ($(CONFIG_DISABLE_SIGNALS),y) + CMN_CSRCS +=mips_schedulesigaction.c mips_sigdeliver.c +endif + ifneq ($(CONFIG_ARCH_IDLE_CUSTOM),y) CMN_CSRCS += mips_idle.c endif diff --git a/arch/misoc/src/lm32/Make.defs b/arch/misoc/src/lm32/Make.defs index b2847f7d25f4a..9837aed612cf2 100644 --- a/arch/misoc/src/lm32/Make.defs +++ b/arch/misoc/src/lm32/Make.defs @@ -33,5 +33,9 @@ CHIP_CSRCS = lm32_allocateheap.c lm32_copystate.c lm32_createstack.c CHIP_CSRCS += lm32_decodeirq.c lm32_doirq.c lm32_exit.c lm32_flushcache.c CHIP_CSRCS += lm32_idle.c lm32_initialstate.c lm32_irq.c lm32_usetack.c CHIP_CSRCS += lm32_registerdump.c lm32_releasestack.c lm32_swint.c -CHIP_CSRCS += lm32_stackframe.c lm32_switchcontext.c lm32_sigdeliver.c -CHIP_CSRCS += lm32_schedulesigaction.c lm32_saveusercontext.c +CHIP_CSRCS += lm32_stackframe.c lm32_switchcontext.c +CHIP_CSRCS += lm32_saveusercontext.c + +ifneq ($(CONFIG_DISABLE_SIGNALS),y) + CMN_CSRCS +=lm32_schedulesigaction.c lm32_sigdeliver.c +endif \ No newline at end of file diff --git a/arch/misoc/src/minerva/Make.defs b/arch/misoc/src/minerva/Make.defs index e7285c01fd71b..d1833d305c137 100644 --- a/arch/misoc/src/minerva/Make.defs +++ b/arch/misoc/src/minerva/Make.defs @@ -34,5 +34,9 @@ CHIP_CSRCS += minerva_decodeirq.c minerva_doirq.c minerva_doexceptions.c CHIP_CSRCS += minerva_exit.c minerva_flushcache.c minerva_idle.c minerva_irq.c CHIP_CSRCS += minerva_initialstate.c minerva_registerdump.c minerva_releasestack.c CHIP_CSRCS += minerva_stackframe.c minerva_swint.c minerva_saveusercontext.c -CHIP_CSRCS += minerva_switchcontext.c minerva_schedulesigaction.c minerva_sigdeliver.c +CHIP_CSRCS += minerva_switchcontext.c CHIP_CSRCS += minerva_usetack.c + +ifneq ($(CONFIG_DISABLE_SIGNALS),y) + CMN_CSRCS +=minerva_schedulesigaction.c minerva_sigdeliver.c +endif diff --git a/arch/or1k/src/mor1kx/Make.defs b/arch/or1k/src/mor1kx/Make.defs index 8278d37f66fbc..8979a8176bc10 100644 --- a/arch/or1k/src/mor1kx/Make.defs +++ b/arch/or1k/src/mor1kx/Make.defs @@ -32,7 +32,6 @@ CMN_CSRCS = or1k_initialize.c \ or1k_stackframe.c \ or1k_initialstate.c \ or1k_switchcontext.c \ - or1k_schedulesigaction.c \ or1k_copyfullstate.c \ or1k_registerdump.c \ or1k_getintstack.c \ @@ -45,6 +44,10 @@ CMN_CSRCS = or1k_initialize.c \ or1k_cpuinfo.c \ mor1kx_start.c +ifneq ($(CONFIG_DISABLE_SIGNALS),y) + CMN_CSRCS +=or1k_schedulesigaction.c +endif + ifeq ($(CONFIG_BUILD_PROTECTED),y) CMN_CSRCS += or1k_task_start.c or1k_pthread_start.c #CMN_CSRCS += or1k_signal_dispatch.c diff --git a/arch/renesas/src/m16c/Make.defs b/arch/renesas/src/m16c/Make.defs index 2ca404f53aef3..e88c68ce82031 100644 --- a/arch/renesas/src/m16c/Make.defs +++ b/arch/renesas/src/m16c/Make.defs @@ -30,9 +30,12 @@ CMN_CSRCS += renesas_switchcontext.c renesas_usestack.c CHIP_ASRCS = m16c_vectors.S CHIP_CSRCS = m16c_initialstate.c m16c_copystate.c m16c_lowputc.c m16c_irq.c -CHIP_CSRCS += m16c_schedulesigaction.c m16c_sigdeliver.c CHIP_CSRCS += m16c_serial.c m16c_registerdump.c +ifneq ($(CONFIG_DISABLE_SIGNALS),y) + CHIP_CSRCS += m16c_schedulesigaction.c m16c_sigdeliver.c +endif + ifneq ($(CONFIG_SCHED_TICKLESS),y) CHIP_CSRCS += m16c_timerisr.c endif diff --git a/arch/renesas/src/rx65n/Make.defs b/arch/renesas/src/rx65n/Make.defs index ea5004a72ed80..264c32616725c 100644 --- a/arch/renesas/src/rx65n/Make.defs +++ b/arch/renesas/src/rx65n/Make.defs @@ -30,11 +30,15 @@ CMN_CSRCS += renesas_usestack.c CHIP_ASRCS = rx65n_vector.S CHIP_CSRCS = rx65n_lowputc.c rx65n_serial.c rx65n_copystate.c rx65n_irq.c -CHIP_CSRCS += rx65n_schedulesigaction.c rx65n_sigdeliver.c rx65n_initialstate.c +CHIP_CSRCS += rx65n_initialstate.c CHIP_CSRCS += rx65n_hardware_setup.c rx65n_port.c rx65n_sci.c CHIP_CSRCS += rx65n_cgc.c rx65n_registerdump.c rx65n_vector_table.c CHIP_CSRCS += rx65n_timerisr.c rx65n_sbram.c +ifneq ($(CONFIG_DISABLE_SIGNALS),y) + CMN_CSRCS +=rx65n_schedulesigaction.c rx65n_sigdeliver.c +endif + ifeq ($(CONFIG_RX65N_EMAC),y) CHIP_CSRCS += rx65n_eth.c rx65n_cmtw0.c endif diff --git a/arch/renesas/src/sh1/Make.defs b/arch/renesas/src/sh1/Make.defs index ecef2adf951b9..4006081660049 100644 --- a/arch/renesas/src/sh1/Make.defs +++ b/arch/renesas/src/sh1/Make.defs @@ -27,12 +27,17 @@ CMN_CSRCS += renesas_exit.c renesas_getintstack.c renesas_initialize.c CMN_CSRCS += renesas_idle.c renesas_initialstate.c renesas_lowputs.c CMN_CSRCS += renesas_nputs.c renesas_releasestack.c CMN_CSRCS += renesas_stackframe.c renesas_switchcontext.c -CMN_CSRCS += renesas_usestack.c sh1_schedulesigaction.c sh1_sigdeliver.c +CMN_CSRCS += renesas_usestack.c CHIP_ASRCS = sh1_vector.S sh1_saveusercontext.S CHIP_CSRCS = sh1_lowputc.c sh1_irq.c sh1_serial.c sh1_initialstate.c CHIP_CSRCS += sh1_copystate.c sh1_registerdump.c +ifneq ($(CONFIG_DISABLE_SIGNALS),y) + CMN_CSRCS += sh1_schedulesigaction.c sh1_sigdeliver.c +endif + + ifneq ($(CONFIG_SCHED_TICKLESS),y) CHIP_CSRCS += sh1_timerisr.c endif diff --git a/arch/risc-v/src/common/CMakeLists.txt b/arch/risc-v/src/common/CMakeLists.txt index cb765c81fa8a1..9d7a75f7802b9 100644 --- a/arch/risc-v/src/common/CMakeLists.txt +++ b/arch/risc-v/src/common/CMakeLists.txt @@ -30,8 +30,7 @@ list(APPEND SRCS riscv_cpuinfo.c riscv_createstack.c riscv_doirq.c list(APPEND SRCS riscv_exit.c riscv_getintstack.c riscv_getnewintctx.c) list(APPEND SRCS riscv_initialize.c riscv_initialstate.c riscv_modifyreg32.c) list(APPEND SRCS riscv_nputs.c riscv_registerdump.c) -list(APPEND SRCS riscv_releasestack.c riscv_schedulesigaction.c - riscv_sigdeliver.c) +list(APPEND SRCS riscv_releasestack.c) list(APPEND SRCS riscv_stackframe.c riscv_tcbinfo.c riscv_swint.c) list(APPEND SRCS riscv_switchcontext.c riscv_usestack.c) @@ -39,6 +38,10 @@ if(CONFIG_ONESHOT) list(APPEND SRCS riscv_mtimer.c) endif() +if(NOT CONFIG_DISABLE_SIGNALS) + list(APPEND SRCS riscv_schedulesigaction.c riscv_sigdeliver.c) +endif() + if(NOT CONFIG_ARCH_IDLE_CUSTOM) list(APPEND SRCS riscv_idle.c) endif() diff --git a/arch/risc-v/src/common/Make.defs b/arch/risc-v/src/common/Make.defs index d39d6a7a3c9dd..28e6278b49270 100644 --- a/arch/risc-v/src/common/Make.defs +++ b/arch/risc-v/src/common/Make.defs @@ -32,14 +32,18 @@ CMN_CSRCS += riscv_allocateheap.c riscv_createstack.c riscv_cpuinfo.c CMN_CSRCS += riscv_cpuidlestack.c riscv_doirq.c riscv_exit.c riscv_exception.c CMN_CSRCS += riscv_getnewintctx.c riscv_getintstack.c riscv_initialstate.c CMN_CSRCS += riscv_modifyreg32.c riscv_nputs.c riscv_releasestack.c -CMN_CSRCS += riscv_registerdump.c riscv_stackframe.c riscv_schedulesigaction.c -CMN_CSRCS += riscv_sigdeliver.c riscv_switchcontext.c +CMN_CSRCS += riscv_registerdump.c riscv_stackframe.c +CMN_CSRCS += riscv_switchcontext.c CMN_CSRCS += riscv_usestack.c riscv_tcbinfo.c ifeq ($(CONFIG_ONESHOT),y) CMN_CSRCS += riscv_mtimer.c endif +ifneq ($(CONFIG_DISABLE_SIGNALS),y) + CMN_CSRCS += riscv_schedulesigaction.c riscv_sigdeliver.c +endif + ifneq ($(CONFIG_ARCH_IDLE_CUSTOM),y) CMN_CSRCS += riscv_idle.c endif diff --git a/arch/sim/src/Makefile b/arch/sim/src/Makefile index d0ef55dae4b26..2cbf5c212855f 100644 --- a/arch/sim/src/Makefile +++ b/arch/sim/src/Makefile @@ -81,11 +81,15 @@ AOBJS = $(ASRCS:.S=$(OBJEXT)) CSRCS = sim_initialize.c sim_idle.c sim_doirq.c sim_initialstate.c CSRCS += sim_createstack.c sim_usestack.c sim_releasestack.c sim_stackframe.c -CSRCS += sim_exit.c sim_schedulesigaction.c sim_switchcontext.c sim_heap.c -CSRCS += sim_uart.c sim_copyfullstate.c sim_sigdeliver.c sim_tcbinfo.c sim_cpuinfo.c +CSRCS += sim_exit.c sim_copyfullstate.c sim_switchcontext.c sim_heap.c +CSRCS += sim_uart.c sim_tcbinfo.c sim_cpuinfo.c CSRCS += sim_registerdump.c sim_saveusercontext.c sim_sectionheap.c CSRCS += sim_checkhostfstypes.c +ifneq ($(CONFIG_DISABLE_SIGNALS),y) + CSRCS += sim_schedulesigaction.c sim_sigdeliver.c +endif + ifeq ($(CONFIG_SCHED_BACKTRACE),y) CSRCS += sim_backtrace.c endif diff --git a/arch/sim/src/sim/CMakeLists.txt b/arch/sim/src/sim/CMakeLists.txt index 66dc3db8944bf..cc419c79370e4 100644 --- a/arch/sim/src/sim/CMakeLists.txt +++ b/arch/sim/src/sim/CMakeLists.txt @@ -50,18 +50,20 @@ list( sim_releasestack.c sim_stackframe.c sim_exit.c - sim_schedulesigaction.c sim_switchcontext.c sim_heap.c sim_uart.c sim_copyfullstate.c - sim_sigdeliver.c sim_registerdump.c sim_saveusercontext.c sim_tcbinfo.c sim_sectionheap.c sim_checkhostfstypes.c) +if(NOT CONFIG_DISABLE_SIGNALS) + list(APPEND SRCS sim_schedulesigaction.c sim_sigdeliver.c) +endif() + if(CONFIG_HOST_X86_64) if(CONFIG_SIM_M32) list(APPEND SRCS sim_fork_x86.S) diff --git a/arch/sparc/src/sparc_v8/Make.defs b/arch/sparc/src/sparc_v8/Make.defs index fb5adaa745658..44feed99afee4 100644 --- a/arch/sparc/src/sparc_v8/Make.defs +++ b/arch/sparc/src/sparc_v8/Make.defs @@ -27,6 +27,10 @@ include common/Make.defs CMN_ASRCS += sparc_v8_syscall.S CMN_CSRCS += sparc_v8_copystate.c sparc_v8_doirq.c CMN_CSRCS += sparc_v8_initialstate.c sparc_v8_irq.c -CMN_CSRCS += sparc_v8_schedulesigaction.c sparc_v8_saveusercontext.c -CMN_CSRCS += sparc_v8_sigdeliver.c sparc_v8_swint1.c sparc_v8_systemreset.c +CMN_CSRCS += sparc_v8_saveusercontext.c +CMN_CSRCS += sparc_v8_swint1.c sparc_v8_systemreset.c CMN_CSRCS += sparc_v8_switchcontext.c sparc_v8_registerdump.c + +ifneq ($(CONFIG_DISABLE_SIGNALS),y) + CMN_CSRCS += sparc_v8_schedulesigaction.c sparc_v8_sigdeliver.c +endif \ No newline at end of file diff --git a/arch/tricore/src/common/CMakeLists.txt b/arch/tricore/src/common/CMakeLists.txt index 1183ed621e939..c01c0cbcc4285 100644 --- a/arch/tricore/src/common/CMakeLists.txt +++ b/arch/tricore/src/common/CMakeLists.txt @@ -36,8 +36,6 @@ set(SRCS tricore_registerdump.c tricore_releasestack.c tricore_saveusercontext.c - tricore_schedulesigaction.c - tricore_sigdeliver.c tricore_stackframe.c tricore_svcall.c tricore_switchcontext.c @@ -46,6 +44,10 @@ set(SRCS tricore_systimer.c tricore_usestack.c) +if(NOT CONFIG_DISABLE_SIGNALS) + list(APPEND SRCS tricore_schedulesigaction.c tricore_sigdeliver.c) +endif() + if(CONFIG_SPINLOCK) list(APPEND SRCS tricore_testset.c) endif() diff --git a/arch/tricore/src/common/Make.defs b/arch/tricore/src/common/Make.defs index c3e9c77dd30c2..a1956ea81c0e7 100644 --- a/arch/tricore/src/common/Make.defs +++ b/arch/tricore/src/common/Make.defs @@ -37,8 +37,6 @@ CMN_CSRCS += tricore_nputs.c CMN_CSRCS += tricore_registerdump.c CMN_CSRCS += tricore_releasestack.c CMN_CSRCS += tricore_saveusercontext.c -CMN_CSRCS += tricore_schedulesigaction.c -CMN_CSRCS += tricore_sigdeliver.c CMN_CSRCS += tricore_stackframe.c CMN_CSRCS += tricore_svcall.c CMN_CSRCS += tricore_switchcontext.c @@ -47,6 +45,10 @@ CMN_CSRCS += tricore_trapcall.c CMN_CSRCS += tricore_systimer.c CMN_CSRCS += tricore_usestack.c +ifneq ($(CONFIG_DISABLE_SIGNALS),y) + CMN_CSRCS += tricore_schedulesigaction.c tricore_sigdeliver.c +endif + ifeq ($(CONFIG_SPINLOCK),y) CMN_CSRCS += tricore_testset.c endif diff --git a/arch/x86/src/qemu/Make.defs b/arch/x86/src/qemu/Make.defs index 893ad50af4b6e..982f1242eccaa 100644 --- a/arch/x86/src/qemu/Make.defs +++ b/arch/x86/src/qemu/Make.defs @@ -34,8 +34,12 @@ CMN_CSRCS += x86_getintstack.c x86_initialize.c CMN_CSRCS += x86_modifyreg8.c x86_modifyreg16.c x86_modifyreg32.c CMN_CSRCS += x86_nputs.c x86_switchcontext.c x86_tcbinfo.c CMN_CSRCS += i486_irq.c i486_regdump.c i486_releasestack.c -CMN_CSRCS += i486_savestate.c i486_sigdeliver.c i486_stackframe.c -CMN_CSRCS += i486_schedulesigaction.c i486_usestack.c +CMN_CSRCS += i486_savestate.c i486_stackframe.c +CMN_CSRCS += i486_usestack.c + +ifneq ($(CONFIG_DISABLE_SIGNALS),y) + CMN_CSRCS += i486_schedulesigaction.c i486_sigdeliver.c +endif # Required QEMU files diff --git a/arch/x86_64/src/intel64/CMakeLists.txt b/arch/x86_64/src/intel64/CMakeLists.txt index 3b00bd2f002c9..4845d29b789b8 100644 --- a/arch/x86_64/src/intel64/CMakeLists.txt +++ b/arch/x86_64/src/intel64/CMakeLists.txt @@ -34,8 +34,6 @@ set(SRCS intel64_rtc.c intel64_restore_auxstate.c intel64_stackframe.c - intel64_schedulesigaction.c - intel64_sigdeliver.c intel64_usestack.c intel64_systemreset.c intel64_freq.c @@ -49,6 +47,10 @@ set(SRCS intel64_check_capability.c intel64_cpu.c) +if(NOT CONFIG_DISABLE_SIGNALS) + list(APPEND SRCS intel64_schedulesigaction.c intel64_sigdeliver.c) +endif() + if(CONFIG_X86_64_UNWINDER_FRAME_POINTER) list(APPEND SRCS intel64_backtrace_fp.c) endif() diff --git a/arch/x86_64/src/intel64/Make.defs b/arch/x86_64/src/intel64/Make.defs index 1dd6fea18f97c..e6227fe5f1daa 100644 --- a/arch/x86_64/src/intel64/Make.defs +++ b/arch/x86_64/src/intel64/Make.defs @@ -25,8 +25,8 @@ include common/Make.defs CMN_CSRCS += intel64_createstack.c intel64_initialstate.c intel64_irq.c CMN_CSRCS += intel64_map_region.c intel64_regdump.c intel64_releasestack.c CMN_CSRCS += intel64_rtc.c intel64_restore_auxstate.c -CMN_CSRCS += intel64_stackframe.c intel64_schedulesigaction.c -CMN_CSRCS += intel64_sigdeliver.c intel64_usestack.c x86_64_tcbinfo.c +CMN_CSRCS += intel64_stackframe.c +CMN_CSRCS += intel64_usestack.c x86_64_tcbinfo.c CMN_CSRCS += intel64_systemreset.c intel64_freq.c intel64_cache.c # Required Intel64 files @@ -36,6 +36,10 @@ CHIP_CSRCS = intel64_start.c intel64_handlers.c intel64_idle.c intel64_lowsetup CHIP_CSRCS += intel64_serial.c intel64_rng.c intel64_check_capability.c CHIP_CSRCS += intel64_cpu.c +ifneq ($(CONFIG_DISABLE_SIGNALS),y) + CMN_CSRCS += intel64_schedulesigaction.c intel64_sigdeliver.c +endif + ifeq ($(CONFIG_X86_64_UNWINDER_FRAME_POINTER),y) CMN_CSRCS += intel64_backtrace_fp.c endif diff --git a/arch/xtensa/src/common/CMakeLists.txt b/arch/xtensa/src/common/CMakeLists.txt index 089976c79e64f..350c51e08acc0 100644 --- a/arch/xtensa/src/common/CMakeLists.txt +++ b/arch/xtensa/src/common/CMakeLists.txt @@ -69,16 +69,18 @@ list( xtensa_perf.c xtensa_releasestack.c xtensa_registerdump.c - xtensa_sigdeliver.c xtensa_swint.c xtensa_stackframe.c xtensa_saveusercontext.c - xtensa_schedsigaction.c xtensa_usestack.c xtensa_tcbinfo.c) # Configuration-dependent common Xtensa files +if(NOT CONFIG_DISABLE_SIGNALS) + list(APPEND SRCS xtensa_schedsigaction.c xtensa_sigdeliver.c) +endif() + if(CONFIG_ARCH_USE_TEXT_HEAP) list(APPEND SRCS xtensa_loadstore.S) endif() diff --git a/arch/xtensa/src/common/Make.defs b/arch/xtensa/src/common/Make.defs index 7a6fe24ae9cce..f24ba7fe79973 100644 --- a/arch/xtensa/src/common/Make.defs +++ b/arch/xtensa/src/common/Make.defs @@ -37,13 +37,17 @@ CMN_CSRCS += xtensa_getintstack.c xtensa_initialize.c xtensa_initialstate.c CMN_CSRCS += xtensa_irqdispatch.c xtensa_lowputs.c CMN_CSRCS += xtensa_modifyreg8.c xtensa_modifyreg16.c xtensa_modifyreg32.c CMN_CSRCS += xtensa_mpu.c xtensa_nputs.c xtensa_oneshot.c xtensa_perf.c -CMN_CSRCS += xtensa_releasestack.c xtensa_registerdump.c xtensa_sigdeliver.c +CMN_CSRCS += xtensa_releasestack.c xtensa_registerdump.c CMN_CSRCS += xtensa_swint.c xtensa_stackframe.c -CMN_CSRCS += xtensa_saveusercontext.c xtensa_schedsigaction.c +CMN_CSRCS += xtensa_saveusercontext.c CMN_CSRCS += xtensa_usestack.c xtensa_tcbinfo.c # Configuration-dependent common Xtensa files +ifneq ($(CONFIG_DISABLE_SIGNALS),y) + CMN_CSRCS += xtensa_schedsigaction.c xtensa_sigdeliver.c +endif + ifeq ($(CONFIG_ARCH_USE_TEXT_HEAP),y) CMN_ASRCS += xtensa_loadstore.S endif diff --git a/arch/z16/src/z16f/Make.defs b/arch/z16/src/z16f/Make.defs index 1563e48977c79..a18f124fa06fa 100644 --- a/arch/z16/src/z16f/Make.defs +++ b/arch/z16/src/z16f/Make.defs @@ -25,12 +25,16 @@ HEAD_SSRC = z16f_head.S CMN_CSRCS = z16_allocateheap.c z16_copystate.c z16_createstack.c z16_doirq.c CMN_CSRCS += z16_exit.c z16_initialstate.c z16_initialize.c z16_idle.c CMN_CSRCS += z16_nputs.c z16_registerdump.c z16_releasestack.c -CMN_CSRCS += z16_schedulesigaction.c z16_sigdeliver.c z16_switchcontext.c +CMN_CSRCS += z16_switchcontext.c CMN_CSRCS += z16_stackframe.c z16_usestack.c CHIP_SSRCS = z16f_lowuart.S z16f_saveusercontext.S z16f_restoreusercontext.S CHIP_CSRCS = z16f_clkinit.c z16f_sysexec.c z16f_irq.c z16f_serial.c +ifneq ($(CONFIG_DISABLE_SIGNALS),y) + CMN_CSRCS += z16_schedulesigaction.c z16_sigdeliver.c +endif + ifneq ($(CONFIG_SCHED_TICKLESS),y) CHIP_CSRCS += z16f_timerisr.c endif diff --git a/arch/z80/src/ez80/Make.defs b/arch/z80/src/ez80/Make.defs index 61aa51c3c3caf..81856f675cb3c 100644 --- a/arch/z80/src/ez80/Make.defs +++ b/arch/z80/src/ez80/Make.defs @@ -55,9 +55,12 @@ CHIP_ASRCS += ez80_getsp.asm endif CHIP_CSRCS = ez80_clock.c ez80_initialstate.c ez80_irq.c ez80_copystate.c -CHIP_CSRCS += ez80_schedulesigaction.c ez80_sigdeliver.c CHIP_CSRCS += ez80_timerisr.c ez80_serial.c +ifneq ($(CONFIG_DISABLE_SIGNALS),y) + CMN_CSRCS += ez80_schedulesigaction.c ez80_sigdeliver.c +endif + ifeq ($(CONFIG_ARCH_STACKDUMP),y) CHIP_CSRCS += ez80_registerdump.c endif diff --git a/arch/z80/src/z180/Make.defs b/arch/z80/src/z180/Make.defs index 61aab00c95d60..6023f8424da51 100644 --- a/arch/z80/src/z180/Make.defs +++ b/arch/z80/src/z180/Make.defs @@ -45,7 +45,13 @@ endif CHIP_CSRCS = z180_copystate.c z180_initialstate.c z180_io.c z180_irq.c CHIP_CSRCS += z180_lowscc.c z180_lowserial.c z180_modifiyreg8.c z180_mmu.c -CHIP_CSRCS += z180_registerdump.c z180_schedulesigaction.c z180_sigdeliver.c +CHIP_CSRCS += z180_registerdump.c + + +ifneq ($(CONFIG_DISABLE_SIGNALS),y) + CMN_CSRCS += z180_schedulesigaction.c z180_sigdeliver.c +endif + ifneq ($(CONFIG_SCHED_TICKLESS),y) CHIP_CSRCS += z180_timerisr.c diff --git a/arch/z80/src/z8/Make.defs b/arch/z80/src/z8/Make.defs index 299b0b9a3e73d..a81b20f1f412d 100644 --- a/arch/z80/src/z8/Make.defs +++ b/arch/z80/src/z8/Make.defs @@ -30,9 +30,12 @@ CMN_CSRCS += z80_stackframe.c z80_usestack.c CHIP_SSRCS = z8_vector.S z8_saveusercontext.S z8_restorecontext.S CHIP_CSRCS = z8_initialstate.c z8_irq.c z8_saveirqcontext.c -CHIP_CSRCS += z8_schedulesigaction.c z8_sigdeliver.c CHIP_CSRCS += z8_serial.c z8_i2c.c z8_registerdump.c +ifneq ($(CONFIG_DISABLE_SIGNALS),y) + CMN_CSRCS += z8_schedulesigaction.c z8_sigdeliver.c +endif + ifneq ($(CONFIG_SCHED_TICKLESS),y) CHIP_CSRCS += z8_timerisr.c endif diff --git a/arch/z80/src/z80/Make.defs b/arch/z80/src/z80/Make.defs index 0152299e47aad..86e709e5b71cc 100644 --- a/arch/z80/src/z80/Make.defs +++ b/arch/z80/src/z80/Make.defs @@ -37,5 +37,8 @@ CMN_CSRCS += z80_usestack.c CHIP_ASRCS = z80_saveusercontext.asm z80_restoreusercontext.asm CHIP_CSRCS = z80_initialstate.c z80_io.c z80_irq.c z80_copystate.c -CHIP_CSRCS += z80_schedulesigaction.c z80_sigdeliver.c CHIP_CSRCS += z80_registerdump.c + +ifneq ($(CONFIG_DISABLE_SIGNALS),y) + CMN_CSRCS += z80_schedulesigaction.c z80_sigdeliver.c +endif