Summary
Jamulus.pro defines OPUS_ARM_PRESUME_NEON_INTR=1 when QT_ARCH=armeabi-v7a. On 32-bit ARMv7, NEON is not part of the base ISA. This setting can make Opus execute NEON instructions without runtime feature detection.
Required change
For QT_ARCH=armeabi-v7a, do not define OPUS_ARM_PRESUME_NEON_INTR=1 unless the project explicitly excludes non-NEON devices. Retain OPUS_ARM_MAY_HAVE_NEON_INTR=1 and OPUS_HAVE_RTCD=1 so Opus can use runtime dispatch. Continue to define the AArch64-specific preset setting only for arm64-v8a and arm64.
If the project intentionally requires NEON for all ARMv7 Android targets, document that compatibility policy next to the define.
Rationale
On an ARMv7 device without NEON, an unconditional NEON intrinsic path can cause an illegal-instruction crash. Runtime dispatch supports NEON where available without requiring NEON for all ARMv7 devices.
Affected area
Jamulus.pro
- Android
armeabi-v7a Opus build defines
- Opus ARM RTCD configuration
Acceptance criteria
- The
armeabi-v7a configuration does not presume NEON unless a documented minimum-device policy requires it.
- Opus retains runtime detection for optional ARMv7 NEON.
- AArch64 configurations retain their appropriate NEON preset defines.
Backlinks
Summary
Jamulus.prodefinesOPUS_ARM_PRESUME_NEON_INTR=1whenQT_ARCH=armeabi-v7a. On 32-bit ARMv7, NEON is not part of the base ISA. This setting can make Opus execute NEON instructions without runtime feature detection.Required change
For
QT_ARCH=armeabi-v7a, do not defineOPUS_ARM_PRESUME_NEON_INTR=1unless the project explicitly excludes non-NEON devices. RetainOPUS_ARM_MAY_HAVE_NEON_INTR=1andOPUS_HAVE_RTCD=1so Opus can use runtime dispatch. Continue to define the AArch64-specific preset setting only forarm64-v8aandarm64.If the project intentionally requires NEON for all ARMv7 Android targets, document that compatibility policy next to the define.
Rationale
On an ARMv7 device without NEON, an unconditional NEON intrinsic path can cause an illegal-instruction crash. Runtime dispatch supports NEON where available without requiring NEON for all ARMv7 devices.
Affected area
Jamulus.proarmeabi-v7aOpus build definesAcceptance criteria
armeabi-v7aconfiguration does not presume NEON unless a documented minimum-device policy requires it.Backlinks