Port-arm archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Assembler issues while compiling pkgsrc packages



On 18/04/2024 15:59, Martin Husemann wrote:
> On Thu, Apr 18, 2024 at 02:37:32PM +0000, John Klos wrote:
>> What can be done to stop the generation of assembler that doesn't work on
>> earmv4?
> 
> Who does generate it? This is a common bug in hand written assembler files
> when the author does not think back to armv4. The fix is pretty simple
> (when no thumb code is involved), something like:
> 
> #if defined (_ARM_ARCH_4T) || defined(__ARM_ARCH_ISA_THUMB)
> # define RET            bx              lr
> #else
> # define RET            mov             pc, lr
> #endif
> 
> and then use RET everywhere instead of "bx lr".
> 
> Martin

From the GNU assembler manual:

--fix-v4bx

    Allow BX instructions in ARMv4 code. This is intended for use with the linker option of the same name.

I presume the LLVM tools have a similar option.  The intent is to allow BX in object files, but for the linker to translate them into MOV PC, LR if the final link step indicates that the image is intended to run on an Armv4 target.

R.


Home | Main Index | Thread Index | Old Index