Mac os/fix as build - #254
Conversation
15ddc58 to
6d6e6a5
Compare
| contains(QT_ARCH, armeabi-v7a) | contains(QT_ARCH, arm64-v8a) | contains(QT_ARCH, arm64) { | ||
| HEADERS_OPUS += $$HEADERS_OPUS_ARM | ||
| SOURCES_OPUS_ARCH += $$SOURCES_OPUS_ARM | ||
| DEFINES_OPUS += OPUS_ARM_PRESUME_NEON=1 OPUS_ARM_PRESUME_NEON_INTR=1 | ||
| contains(QT_ARCH, arm64-v8a):DEFINES_OPUS += OPUS_ARM_PRESUME_AARCH64_NEON_INTR |
There was a problem hiding this comment.
OPUS_ARM_PRESUME_AARCH64_NEON_INTR not set for arm64
The newly-added arm64 match sets OPUS_ARM_PRESUME_NEON=1 and OPUS_ARM_PRESUME_NEON_INTR=1, but OPUS_ARM_PRESUME_AARCH64_NEON_INTR on line 692 is conditional only on arm64-v8a. When Qt begins reporting arm64 correctly for Apple Silicon, the top-tier NEON optimization will be missed.
There was a problem hiding this comment.
Correct. Needs to be fixed.
Co-authored-by: softins <softins@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com> Also change places where values are used Fix formatting
…ngs-autofix/skillevel Fix RGBCOL_R_SL_SL_* typo
| @@ -1,4 +1,4 @@ | |||
| VERSION = 3.12.1dev | |||
| VERSION = 3.12.2dev | |||
| SOURCES_OPUS_ARCH += $$SOURCES_OPUS_ARM | ||
| DEFINES_OPUS += OPUS_ARM_PRESUME_NEON=1 OPUS_ARM_PRESUME_NEON_INTR=1 | ||
| contains(QT_ARCH, arm64-v8a):DEFINES_OPUS += OPUS_ARM_PRESUME_AARCH64_NEON_INTR | ||
| DEFINES_OPUS += OPUS_ARM_PRESUME_NEON_INTR=1 |
There was a problem hiding this comment.
OPUS_ARM_PRESUME_NEON_INTR=1 defined without its implementation files on Apple Silicon
DEFINES_OPUS += OPUS_ARM_PRESUME_NEON_INTR=1 is placed unconditionally at line 690 for all ARM architectures, including macOS (arm64). But the actual NEON intrinsic implementation files — pitch_neon_intr.c, celt_neon_intr.c, arm_celt_map.c, arm_silk_map.c, etc. — are only added to SOURCES_OPUS_ARCH inside the non-macx else block (line 695). With OPUS_HAVE_RTCD=1 also set (line 707), Opus RTCD dispatch will unconditionally point function pointers at these NEON intrinsic symbols (e.g. celt_pitch_xcorr_neon_intr). Since those translation units aren't compiled on macOS, the linker will fail with undefined references. The OPUS_ARM_PRESUME_NEON_INTR=1 define needs to be moved inside the else { } branch alongside OPUS_ARM_PRESUME_NEON=1 on line 696.
a6db720 to
1d3c1be
Compare
Update Jamulus.pro Update Jamulus.pro Update Jamulus.pro
1d3c1be to
bda1c1f
Compare
Short description of changes
Fixes macOS Xcode build. Not yet 100% validated as this also does some potentially unrelated changes. The QT_ARCH variable wrongly contains x86 even on apple silicon.
CHANGELOG: Fix compilation errors on apple silicon via Xcode.
CHANGELOG:
Context: Fixes an issue?
Does this change need documentation? What needs to be documented and how?
Status of this Pull Request
What is missing until this pull request can be merged?
Checklist