Поддерживает ли ACE+TAO/OpenDDS 64-битную цепочку инструментов GCC?

ACE+TAO: 6.3.2
OpenDDS: 3.11
Хост-компилятор: GCC 5.4

Когда я выполняю кросс-компиляцию OpenDDS для Android, я смотрю на ACE_wrappers/build/arm/include/makeinclude/platform_android.GNU, который выполняет кросс-компиляцию для ACE и, по-видимому, только для ARM-v7a.

Причина, по которой я говорю это, заключается в том, что я получаю следующую ошибку при компиляции автоматически сгенерированных файлов в моем приложении ((которые возникают из-за использования opendds_idl в *.idl) и после кучи «В файл, включенный из» строки, заканчивается ...

 [exec] /home/me/tools/crystax-ndk/sources/cxx-stl/gnu-libstdc++/5/include/limits:1601:7: internal compiler error: Illegal instruction
 [exec]        max() _GLIBCXX_USE_NOEXCEPT { return __FLT_MAX__; }
 [exec]        ^

Я видел что-то подобное раньше, когда компилировал код с неправильными флагами для архитектуры ЦП. Итак, я думаю, что, возможно, в GCC есть какие-то несовместимые настройки цепочки инструментов, которые я использую в своем приложении, и те настройки, которые используются ACE + TAO / OpenDDS? Переменная CROSS_COMPILE в platform_android.GNU — это arm-linux-androideabi-..., которая, насколько я знаю, представляет собой 32-битную цепочку инструментов, то есть arm-v7a, и я не вижу ссылок на v8a. И все же в моем приложении я использую aarch64-linux-android-5. Должны ли они быть совместимы? Можно ли изменить цепочку инструментов?

Что я хотел бы сделать, так это собрать ACE+TAO/OpenDDS/my-application для целевой архитектуры и ABI... arm64: arm64-v8a и использовать набор инструментов NDK и целевой ABI... aarch64-linux-android-5 : arm64-v8a.

Мысли?


person Ender    schedule 09.06.2017    source источник


Ответы (1)


Это должно быть возможно, но, вероятно, файлы конфигурации устарели. Во-первых, обновите до ACE+TAO 6.3.4, которая является последней. Во-вторых, проверьте файл include/makeinclude/platform_android.GNU и посмотрите, есть ли там ваша цель. Возможно, необходимы небольшие обновления, если это так, пожалуйста, откройте запрос на вытягивание по адресу https://github.com/DOCGroup/ACE_TAO с необходимыми изменениями. Найдите arm-v7a и посмотрите, нужна ли в этом месте новая проверка для arm-v8a.

person Johnny Willemsen    schedule 09.06.2017
comment
Выполнит pull-request, внося обновления в platform_android.GNU. - person Ender; 10.06.2017
comment
Создал запрос. - person Ender; 12.06.2017
comment
Слил ваш запрос на вытягивание, он станет частью следующего микровыпуска ACE/TAO (пока нет расписания) - person Johnny Willemsen; 15.06.2017