Estamos criando um grande aplicativo C ++ no OS X Yosemite 10.10. Este aplicativo depende de várias bibliotecas de terceiros que instalamos usando o Homebrew antes de criar nosso aplicativo. Nosso script de lançamento pega todas as dependências e as inclui no pacote final.
Vários de nossos usuários relataram que nosso aplicativo não funcionou em seu Mac. Por exemplo, um usuário executando o macOS 10.12.6 em um iMac de 27 polegadas do final de 2012 está recebendo llegal instruction: 4
(todos os detalhes aqui ).
Parece que a falha ocorre em uma das dependências de terceiros que empacotamos, o OpenImageIO, que foi instalado na máquina de compilação com os seguintes comandos:
brew tap homebrew/science
brew install openimageio
brew info openimageio
informa que, de fato, foi criado a partir da fonte:
/usr/local/Cellar/openimageio/1.7.17_1 (66 files, 16.0MB) *
Built from source on 2017-11-27 at 19:15:19
Eu suspeito que o Homebrew permite conjuntos avançados de instruções x86 ao compilar na máquina de compilação.
Veja a fórmula do Homebrew para OpenImageIO: link
Existe uma maneira de descobrir quais flags ou quais linhas de comando o Homebrew está usando?
Alternativamente, existe uma maneira de definir globalmente os flags padrão do clang no macOS?