Thread (18 messages) 18 messages, 4 authors, 2018-10-02

[PATCH] ARM: makefile: pass -march=armv4 to assembler even on CPU32v3

From: Jason@zx2c4.com (Jason A. Donenfeld)
Date: 2018-10-02 12:30:45
Also in: lkml

Hi Arnd,

On Tue, Oct 2, 2018 at 9:58 AM Arnd Bergmann [off-list ref] wrote:
quoted
I think we're going to wind up playing whack-a-mole in silly ways. The
fact of the matter is that the ARM assembly I'm adding to the tree is
for ARMv4 and up, and not for ARMv3.
I don't see what issues remain. The 'reteq lr' that Ard mentioned
is definitely the correct way to return from assembly (you also need
that for plain armv4, as 'bx' was added in armv4t), and Russell
confirmed that using -march=armv3m is something we want
anyway for mach-rpc.
I'll do that. I can confirm that after changing it to `reteq lr`,
everything works well with armv3m.
quoted
I think there are three options to work around this issue:

1) Not build my assembly when CONFIG_CPU_32v3 via a Kconfig "depends".
2) Set asflags-$(CONFIG_CPU_32v3) inside my module locally to select
-march=armv4.
3) This patch.

My initial plan was (1). ArdB recommended I do (2) instead. I thought
that was a bit too nuanced and submitted (3).
I suspect all three of the above fail to work for armv4.
Armv4 does actually work in this configuration, in fact. But anyway,
I'll go with your primary suggestion and we therefore can move ahead
with changing the global cflag to march=armv3m. Would you like me to
submit the patch for this, or would yo like to handle it?

Jason
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help