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 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 }