Fix undefined IRQ_MASK/FIQ_MASK in Cortex-A GNU/AC6 ports with VFP enabled #489
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR fixes a compilation error in
tx_thread_schedule.Sfor ARM Cortex-A ports (GNU and AC6) whenTX_ENABLE_VFP_SUPPORTis defined.When VFP support is enabled, the context restore logic at the end of the scheduling loop attempts to use
IRQ_MASKandFIQ_MASKto manage interrupt state. However, these symbols are not defined in the assembly files, leading to build failures:undefined symbol IRQ_MASK used as an immediate valueThis issue appears to be present across multiple Cortex-A ports (GNU and AC6). This PR adds the missing definitions (IRQ_MASK = 0x80, FIQ_MASK = 0x40) to the affected files.
Fix
Added local definitions for
IRQ_MASKandFIQ_MASKintx_thread_schedule.S. This aligns with the definitions found intx_thread_interrupt_restore.Sand enables successful compilation of the VFP context switch logic.Validation
Hardware: Xilinx Zynq-7000 (ZC702)
Toolchain: GNU Arm Embedded Toolchain
Verification:
-DTX_ENABLE_VFP_SUPPORT.PR checklist