radareorg/r2ghidra

Compilation failure on latest radare2 git pull

Closed this issue · 2 comments

a-yyg commented

Description

Hello. Very new to radare2. Maybe this issue is already evident to you.
It seems that commit f40ce7e on radare2 broke the build on r2ghidra, making it unable to install through r2pm on the latest radare2.

Test

# On git checkout f40ce7e for radare2
$ r2pm -ci r2ghidra 
INFO: Cleaning r2ghidra
INFO: Using r2-5.8.9 and r2pm-5.8.9
INFO: Cleaning r2ghidra
INFO: git clone --depth=10 --recursive https://github.com/radareorg/r2ghidra /home/anon/.local/share/radare2/r2pm/git//r2ghidra
Cloning into '/home/anon/.local/share/radare2/r2pm/git//r2ghidra'...
...
c++ -fPIC -I../third-party/pugixml/src/ -g -std=c++11 -DR2GHIDRA_SLEIGHHOME_DEFAULT=\"/home/anon/.local/share/radare2/plugins/r2ghidra_sleigh\" -w -fPIC -Wshadow -I../ghidra-native/src/decompiler -I. -I/usr/local/include/libr -I/usr/local/include/libr -c SleighAnalValue.cpp
SleighAnalValue.cpp: In static member function ‘static SleighAnalValue SleighAnalValue::resolve_arg(RAnal*, const PcodeOperand*)’:
SleighAnalValue.cpp:22:36: error: cannot convert ‘RRegItem*’ {aka ‘r_reg_item_t*’} to ‘const char*in assignment
   22 |                 res.reg = r_reg_get(anal->reg, arg->name.c_str(), R_REG_TYPE_ALL);
      |                           ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                    |
      |                                    RRegItem* {aka r_reg_item_t*}
SleighAnalValue.cpp: In static member function ‘static std::vector<SleighAnalValue> SleighAnalValue::resolve_out(RAnal*, std::vector<Pcodeop>::const_iterator, std::vector<Pcodeop>::const_iterator, const PcodeOperand*)’:
SleighAnalValue.cpp:157:37: error: cannot convert ‘RRegItem*’ {aka ‘r_reg_item_t*’} to ‘const char*in assignment
  157 |                 tmp.reg = r_reg_get (anal->reg, arg->name.c_str(), R_REG_TYPE_ALL);
      |                           ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                     |
      |                                     RRegItem* {aka r_reg_item_t*}
SleighAnalValue.cpp:179:68: error: cannot convert ‘RRegItem*’ {aka ‘r_reg_item_t*’} to ‘const char*in assignment
  179 |                                                 tmp.reg = r_reg_get(anal->reg, iter->output->name.c_str(), R_REG_TYPE_ALL ;
      |                                                           ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                                                    |
      |                                                                    RRegItem* {aka r_reg_item_t*}
make: *** [Makefile:96: SleighAnalValue.o] Error 1

For now I'll just checkout to the commit before that to keep the tooling working.

trufae commented

Thats more than expected. R2 is now in an abi breaking season and all plugins will break for about 1 month or so. Use the last release of r2 or fix the plugin with ifdefs. I will do that when i have some spare time. But there are more breaking changes ahead until i stabilize the abi again for 1-2 years

trufae commented

its fixed btw