ARM: 8723/2: always assume the "unified" syntax for assembly code
authorNicolas Pitre <nicolas.pitre@linaro.org>
Wed, 29 Nov 2017 06:52:52 +0000 (07:52 +0100)
committerRussell King <rmk+kernel@armlinux.org.uk>
Sun, 17 Dec 2017 22:14:21 +0000 (22:14 +0000)
commit75fea300d73ae5b18957949a53ec770daaeb6fc2
tree9e07e50f5b8992512603774358e0979906237a59
parent55e7cff44c7c322310aded74ed92c54b22ccccd4
ARM: 8723/2: always assume the "unified" syntax for assembly code

The GNU assembler has implemented the "unified syntax" parsing since
2005. This "unified" syntax is required when the kernel is built in
Thumb2 mode. However the "unified" syntax is a mixed bag of features,
including not requiring a `#' prefix with immediate operands. This leads
to situations where some code builds just fine in Thumb2 mode and fails
to build in ARM mode if that prefix is missing. This behavior
discrepancy makes build tests less valuable, forcing both ARM and Thumb2
builds for proper coverage.

Let's "fix" this issue by always using the "unified" syntax for both ARM
and Thumb2 mode. Given that the documented minimum binutils version that
properly builds the kernel is version 2.20 released in 2010, we can
assume that any toolchain capable of building the latest kernel is also
"unified syntax" capable.

Whith this, a bunch of macros used to mask some differences between both
syntaxes can be removed, with the side effect of making LTO easier.

Suggested-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
arch/arm/Kconfig
arch/arm/Makefile
arch/arm/include/asm/unified.h