"Компактный раскрутить" проблемы интеграции библиотеки IPP на MacOS
В процессе обновления библиотеки MacOS я изменил целевую версию развертывания OS X с 10.8 до 10.9. Однако одна из библиотечных зависимостей использовала Intel IPP (Intel Performance Primitives), который выдал кучу предупреждений "не удалось создать компактный раскрутку", например:
ld: warning: could not create compact unwind for _ippStaticInitCpu: register saved more than once (might be shrink wrap)
ld: warning: could not create compact unwind for _ippStaticInit: register 13 saved somewhere other than in frame
и т.д. сотни больше сообщений, как это.
Чтобы избавиться от них, -no_compact_unwind
Флаг был передан компоновщику, который отлично работал для цели развертывания 10.8, но для 10.9 это вызывает проблему с libC++abi, где исключения не перехватываются.
Я обнаружил, что библиотека может быть построена и работает, передавая -keep-dwarf-unwind
в дополнение к -no-compact-unwind
, но я немного обеспокоен тем, что я не понимаю, что происходит. Какой порядок действий здесь предпочтителен, каковы преимущества / недостатки / риски?
- Идти с
-keep-dwarf-unwind
- Подавить или игнорировать предупреждения
- Может быть, эта зависимость просто несовместима с целью развертывания 10.9, и мне следует отложить обновление до его обновления (например, для использования другой версии IPP)?
- Другие опции?