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-
> [email protected]> On Behalf Of Gary Partis
> Sent: Tuesday, February 11, 2020 18:36
> To: [email protected]
> 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