Skip to content

Commit

Permalink
[PATCH] m68k: work around binutils tokenizer change
Browse files Browse the repository at this point in the history
Recent as(1) doesn't think that .  terminates a macro name, so getuser.l is
_not_ treated as invoking getuser with .l as the first argument.
arch/m68k/math-emu relies on old behaviour, so it gets a lot of undefined
macros with more or less current binutils.

Note that this behaviour remains in all recent versions and is unrelated to
another binutils problems we used to have for a while (having (%a0)+ parsed
as two arguments).  This one is there to stay; it's an intentional and
documented change.

.irp <identifier> <words>
[text]
.endr
expands to a copy of text per each word, with \<identifier> replaced with
corresponding word.  Again, what happens depends on whether gas_ident.x
is treated as one or as two tokens; in the former case we'll get old_gas
incremented once, in the latter - twice.  The rest is obvious.

Unlike .macro argument list _anything_ is explicitly allowed after
.irp <identifier>; here we are on very safe ground.  And yes, it does
work with all gas variants I've got here (including vanilla 2.15, 2.16,
2.16.1 and 2.17, plus debian and FC binutils).

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Al Viro authored and Linus Torvalds committed Feb 11, 2007
1 parent fabb626 commit 3813561
Showing 1 changed file with 15 additions and 0 deletions.
15 changes: 15 additions & 0 deletions include/asm-m68k/math-emu.h
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,21 @@ extern unsigned int fp_debugprint;
.previous
.endm

/* work around binutils idiocy */
old_gas=-1
.irp gas_ident.x .x
old_gas=old_gas+1
.endr
.if !old_gas
.irp m b,w,l
.macro getuser.\m src,dest,label,addr
getuser .\m,\src,\dest,\label,\addr
.endm
.macro putuser.\m src,dest,label,addr
putuser .\m,\src,\dest,\label,\addr
.endm
.endr
.endif

.macro movestack nr,arg1,arg2,arg3,arg4,arg5
.if \nr
Expand Down

0 comments on commit 3813561

Please sign in to comment.