Re: [PATCH 2/2] m68k: more workarounds for recent binutils idiocy

From: Al Viro
Date: Wed Oct 11 2006 - 20:51:29 EST


On Thu, Oct 12, 2006 at 12:12:05AM +0200, Andreas Schwab wrote:
> Al Viro <viro@xxxxxxxxxxxxxxxx> writes:
>
> > cretinous thing doesn't believe that (%a0)+ is one macro argument and
> > splits it in two; worked around by quoting the argument...
>
> What version are you using? Works rather fine here with 2.17.

There are two problems; see below for the testcase covering both
.macro a x
.byte 1
.endm
a.x
a %(a0)+

Old binutils (i.e. what Roman's code expects) treat the above as
.byte 1
.byte 1

That behaviour exists in 2.16.1 and earlier. Everything starting at least
with 2.16.90.0.2 and up to current CVS generates
Error: Unknown operator -- statement `a.x' ignored
for line 4. That's the problem dealt with by the first patch (and yes,
current gas from CVS does blow on arch/m68k/math-emu/ as soon as you get
to getuser.l <something>).

_Another_ problem manifests as
Error: too many positional arguments
in line 5. That had been introduced later (in 2.16.91.0.3, if you look at
versions on kernel.org, or 2005-08-08 in mainline) and had been fixed since
then (2.16.91.0.7 or 2006-02-28 in CVS). That's what the second patch
dealt with and yes, I agree that just slapping "don't use those versions
of binutils" in Documentation/Changes is a better variant.

The first problem still needs to be dealt with.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/