Я пытаюсь понять, возможно ли использовать плагин ag cc в кросс-компиляторе ARM (arm-none-eabi-g cc). Однако я сталкиваюсь с ошибками компилятора и задаюсь вопросом, возможно ли то, что я пытаюсь сделать.
Плагин, который я пытаюсь настроить: https://github.com/vanhauser-thc/AFLplusplus/tree/master/gcc_plugin
Я компилирую плагин на x86-64 linux, используя -m32
флаг, поскольку кросс-компилятор является 32-битным приложением. Однако, когда я пытаюсь использовать плагин в кросс-компиляторе, используя -fplugin
, я получаю неопределенную ошибку компилятора символов:
cc1plus: error: cannot load plugin ../afl-gcc-pass.so
../afl-gcc-pass.so: undefined symbol: _Z13build_int_cstP9tree_nodel
Я просматривал символы плагина, используя nm
и обнаружил, что большинство символов не определены, включая такие, как exit
и random
. Я плохо знаком с большинством из этого и не уверен, что это действительно означает. Некоторые поиски в Интернете предположили, что это может быть связано с неправильными путями к библиотекам, но настройка LIBRARY_PATH
и LD_LIBRARY_PATH
и перестройка, похоже, не помогли.
Настройки g cc версии I пробовал:
1: x86: 5.4.0, arm: 5.4.1 на Ubuntu 16.04
2: x86: 5.2.0, arm: 5.2.1 на CentOS 6.8
Можно ли использовать плагин ag cc в другом g cc, чем он был скомпилирован, или я трачу свое время?