arch/ceva: cannot be selected, has no board, and tests the removed CONFIG_DISABLE_SIGNALS

Open
#21,075 1 comment 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Refactor
Clarity
Mostly clear
Activity status
Active
Tech stack
c
Domain
embedded-iot

Research direction

Start by checking arch/Kconfig, arch/ceva/Kconfig, and the listed signal guards in arch/ceva; compare them with other architectures’ CONFIG_ENABLE_ALL_SIGNALS guards. The issue offers two possible resolutions: make the port selectable and buildable by adding a board, or remove it. First determine whether the port is still in use; done means the selected path is resolved, including the stale signal configuration references if the port remains.

Written by the indexing model from the issue text.

Description

Description

arch/ceva (added in ee916bdb91c, 2022-01) cannot be built in the tree:

  • arch/Kconfig has no ARCH_CEVA option and does not source arch/ceva/Kconfig (which starts with if ARCH_CEVA). So no configuration can select the architecture.
  • No board under boards/ uses it, and no CI test list builds it.

The code is also out of date. 13 lines in 9 files test CONFIG_DISABLE_SIGNALS, which NuttX removed in 7.30 ("Signals can no longer be disabled"):

  • arch/ceva/include/xc5/irq.h:131, arch/ceva/include/xm6/irq.h:134
  • arch/ceva/src/common/ceva_schedulesigaction.c:38, :149
  • arch/ceva/src/common/ceva_sigdeliver.c:37, :98
  • arch/ceva/src/common/ceva_signal_dispatch.c:33
  • arch/ceva/src/common/ceva_svcall.c:281, :322
  • arch/ceva/src/common/ceva_userspace.c:217
  • arch/ceva/src/xc5/xc5_signal_handler.S:32, arch/ceva/src/xm6/xm6_signal_handler.S:32

The other architectures guard the same code with CONFIG_ENABLE_ALL_SIGNALS (0ea686bc5b3, partial signal support). With CONFIG_ENABLE_PARTIAL_SIGNALS or CONFIG_DISABLE_ALL_SIGNALS, ceva_userspace.c:218 and ceva_svcall.c:295 use userspace_s.signal_handler, which include/nuttx/userspace.h then does not declare.

Nobody can build or test a change to these files in the tree. Two ways forward:

  1. If the port is still in use: add ARCH_CEVA to arch/Kconfig and a board, then change the signal guards to CONFIG_ENABLE_ALL_SIGNALS.
  2. If not: remove arch/ceva.
Verification
  • I have verified before submitting the report.
Dominant language
C
Stars
4.1k
Forks
1.8k
Avg merge
1d 3h
Merged PRs (30d)
833

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from apache/nuttx

All issues in apache/nuttx

Similar issues

More C issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.