«Компактный раскрутить» проблемы интеграции библиотеки IPP на MacOS - PullRequest
0 голосов
/ 25 января 2019

В процессе обновления библиотеки MacOS я изменил целевую версию развертывания OS X с 10.8 до 10.9. Однако в одной из библиотечных зависимостей использовался Intel IPP (Intel Performance Primitives), который выдавал кучу предупреждений «не удалось создать компактный раскрутку», например ::100100

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)?
  • Другие варианты?
...