Мы создаем большое приложение C++ на OS X Yosemite 10.10. Это приложение опирается на ряд сторонних библиотек, которые мы устанавливаем с помощью Homebrew до создания нашего приложения. Наш скрипт выпуска собирает все зависимости и включает их в окончательный пакет.
Несколько наших пользователей сообщили, что наше приложение не работает на их Mac. Например, пользователь, использующий macOS 10.12.6 на 27-дюймовом iMac в конце 2012 года, получает llegal instruction: 4
(все подробности здесь).
Похоже, что сбой происходит в одной из сторонних зависимостей OpenImageIO, которая была установлена на компьютере сборки, с помощью следующих команд:
brew tap homebrew/science
brew install openimageio
brew info openimageio
сообщает, что он действительно был построен из источника:
/usr/local/Cellar/openimageio/1.7.17_1 (66 files, 16.0MB) *
Built from source on 2017-11-27 at 19:15:19
Я подозреваю, что Homebrew включает расширенные наборы команд x86 при компиляции на сборочном компьютере.
Вот формула Homebrew для OpenImageIO:
https://github.com/Homebrew/homebrew-science/blob/master/openimageio.rb
Есть ли способ узнать, какие флаги или какие командные строки использует Homebrew?
В качестве альтернативы, есть ли способ глобально установить флаги Clang по умолчанию на MacOS?