[PATCH 3/3] ARM: early_printk: use printascii() rather than printch()

Russell King - ARM Linux linux at armlinux.org.uk
Thu Nov 2 10:10:19 PDT 2017


On Thu, Nov 02, 2017 at 04:38:11PM +0000, Chris Brandt wrote:
> On Thursday, November 02, 2017 1, Nicolas Pitre wrote:
> > OK.. I wanted to get to the bottom of this. The gas documentation says:
> > 
> > |9.4.2.1 Instruction Set Syntax
> > |..............................
> > |
> > |Two slightly different syntaxes are supported for ARM and THUMB
> > |instructions.  The default, `divided', uses the old style where ARM and
> > |THUMB instructions had their own, separate syntaxes.  The new,
> > |`unified' syntax, which can be selected via the `.syntax' directive,
> > |and has the following main features:
> > |
> > |   * Immediate operands do not require a `#' prefix.
> 
> Well there you go!
> 
> We all have "gratuitously broken binutils"
> 
> ;)

Yes!

What reason could there be to drop the well established norm of
prefixing constants with "#" in ARM assembly, other than maybe
political pressure?

As I've already pointed out, we can see that this causes problems,
and what it means is that people now must test their changes with
Thumb2 support disabled in the kernel for there to be any valid
testing of assembly.  That basically means I can't trust anyone
elses testing of patches that contain assembly, because I don't
know what configuration they've tested.

This is very bad, and it's going to make it slower to get such
patches into the kernel.

That's an unintended side effect of what was probably thought to be
a trivial decision by the ARM ISA team, but it unfortunately has
wider effects than they could have imagined.

There is another solution to this: I augment the patch system with an
ARM assembly parser that detects this before it gets accepted,
rejecting patches that omit the # for constants.  However, that is
incomplete, because we now live in a world where ARM assembly gets
added to the kernel via many different git trees.

Basically, this change in the ARM syntax should never have been made.

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 8.8Mbps down 630kbps up
According to speedtest.net: 8.21Mbps down 510kbps up



More information about the linux-arm-kernel mailing list