"Компактный раскрутить" проблемы интеграции библиотеки 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)?
  • Другие опции?

0 ответов

Другие вопросы по тегам