On Thursday 18 November 2004 20:03, Richard Earnshaw wrote: > > I made this change only for final links because it's less of > > a compatibility > > issue than for relocatable output. For EABI objects, > > presumably we should > > do the same. For non-EABI objects, I'm not sure if it should > > be changed or > > left alone; I have no idea what other tools are affected. > > However, since > > dynamic objects containing Thumb symbols did not work > > properly before my > > last change, I see no reason to conditionalize it. > > It needs to be done for objects too. Without it, other toolchains can't > consume GAS assembled objects that claim to conform to the EABI. > > There's no reason why the tricks shouldn't work on objects, so I think > it should be done there too. > > As to the issue of backward compatibility, there shouldn't be a problem > in binutils, they will just do the appropriate transformation when > reading in object files. As for other tools, then I think they are just > going to have to get used to the new form. It is better that functions > really are tagged with STT_FUNC rather than a machine-dependent value, > and Thumb-ness really isn't that special. The attached patch does this. I pushed the transformation down into bfd_swap_symbol_{in,out} so that objcopy works. I had to make this change unconditionally because objcopy does not set the EABI version in e_flags until after the symbol table has been written out. This means and ABI change for thumb objects. New binutils/BFD will transparently handle both new and old format symbol tables. Tested with cross to arm-none-eabi, and light testing on arm-linux. Ok? Paul 2004-11-19 Paul Brook bfd/ * elf32-arm.c (elf32_arm_swap_symbol_in): New function. (elf32_arm_swap_symbol_out): New function. (elf32_arm_size_info): Add. (elf_backend_size_info): Define. ld/ * testsuite/ld-arm/mixed-lib.sym: Update for THUMB_FUNC change.