On 14/10/11 17:40, Ben Gamari wrote: > I was recently trying to test GCC's behavior in producing various types > of ARM relocations. In particular, I was trying to produce an > R_ARM_JUMP24 relocation, which requires veneer. It was suggested that > the code most likely to produce this relocation would involve some sort > of tail recursion. I wrote up a small test[1] involving interworking and > tail recursion to see what the produced object might look like. To my > surprise, I found that the compiler instead[2] produced the deprecated > R_ARM_PLT32 relocation. Considering the deprecated state of this > relocation type, should this be considered a bug? Being a linker > implementer, I for one would greatly appreciate it if GCC tried to only > use non-deprecated relocation types. I apologize if this has already > been fixed upstream. >
The compiler doesn't produce relocations, but the assembler does. You need to make sure your binutils is up-to-date. R.