Hi Gary, It seems to work fine for me. Do you have a reproducer perhaps?
> cat test.s .text bx lr > arm-none-linux-gnueabihf-as -march=armv4t test.s -o test.o > arm-none-linux-gnueabihf-ld --fix-v4bx test.o -e0 -o test.exe > arm-none-linux-gnueabihf-objdump -dr test.exe test.exe: file format elf32-littlearm Disassembly of section .text: 00010054 <__bss_end__-0x10004>: 10054: e1a0f00e mov pc, lr Thanks, Tamar > -----Original Message----- > From: bug-binutils <bug-binutils- > bounces+tamar.christina=arm....@gnu.org> On Behalf Of Gary Partis > Sent: Tuesday, February 11, 2020 18:36 > To: bug-binutils@gnu.org > Subject: Linker --fix-v4bx problem > > > Hello > > I am using GNU ld version 2.31.1 to target ARMv3 (ARM610/710) processors. > Primarily, GCC's libgcc contains "BX LR" instructions which we want changed > to "MOV PC,LR" so to be compatible with older processors, but after running > the linker with the "--fix-vxb4" directive the BX instructions are still > there (we > use objdump to disassemble the resultant ELF file to check). > > Are we missing something really obvious or is the "--fix-v4bx" directive > broken in some way? > > Thanks in advance. > > Kind regards > > Gary Partis