Seems like when cabal builds a package's C sources, GHC invokves clang without -mcpu, so it targets the host by default. When building something like the direct-sqlite package, this emits "udot.4s" which the A12/A12x chips dont have.
reproduction steps
Build Device: macOS Tahoe 26.4 on Mac Mini (M2 Pro)
Test Device: ipadOS 18.7.7 on 2018 iPad Pro (A12X)
- Clone the example project
- set a dummy api key
export PRRRRRRRRR_API_KEY=dummy
- run the setup script
nix-shell -p xcodegen --run 'PATH=/usr/bin:$PATH ./setup-ios.sh'
- change the signing information in xcode project settings (team and bundle identifier)
- run the application through xcode on the test device
Seems like when cabal builds a package's C sources, GHC invokves clang without -mcpu, so it targets the host by default. When building something like the direct-sqlite package, this emits "udot.4s" which the A12/A12x chips dont have.
reproduction steps
Build Device: macOS Tahoe 26.4 on Mac Mini (M2 Pro)
Test Device: ipadOS 18.7.7 on 2018 iPad Pro (A12X)
export PRRRRRRRRR_API_KEY=dummynix-shell -p xcodegen --run 'PATH=/usr/bin:$PATH ./setup-ios.sh'