Turning it on changes all instructions that use a %gp_rel reloc into macro
instructions that do not specify the relocation explicitly nor reference the
$gp register.
This may even change some instruction mnemonics, like replacing addiu into
la.
This is required by old assemblers that do not support explicit %gp_rel
relocations, but instead they infer the relocation to be used by checking
if the symbol was defined in the assembly file and its size fits on the
passed -G parameter.
WARNING: It is the user's responsability to provide those symbol definitions
to the assembler, otherwise those instructions will be expanded into
multiple instructions and produce a shifted build.
elfObjDisasm's readelf:
Add MIPS_SCOMMON and MIPS_SUNDEFINED support in symtab.
Use the section name in the ndx column instead of a plain number for
OBJECTs and FUNCs.
Changed
Try to detect function pointers used on tail call optimizations and try to not
confuse them with detected jumptables.
rabbitizer 1.12.0 or above is required.
Fixed
Fix rodata addresses referenced only by other rodata symbols on the same
file not being properly symbolized.
elfObjDisasm's readelf:
Fix name column not displaying the section's name.
Fix relocation sections not displaying anything on the name columns for
relocations relative to a section instead of a symbol.
[1.28.0] - 2024-08-09
Added
SectionText.gpRelHack
setting.%gp_rel
reloc into macro instructions that do not specify the relocation explicitly nor reference the$gp
register.addiu
intola
.%gp_rel
relocations, but instead they infer the relocation to be used by checking if the symbol was defined in the assembly file and its size fits on the passed-G
parameter.MIPS_SCOMMON
andMIPS_SUNDEFINED
support in symtab.OBJECT
s andFUNC
s.Changed
Fixed