[PATCH] m68k: work around binutils tokenizer change

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.

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.

Patch works by having a macro with name that would be treated differently
by new and old rules; if expanded, it adds definition for getuser.b, etc.
via getuser.  Old as(1) sees
definition of gas_fscked with one argument
redefinition of gas_fscked (with empty body and ignored argument)
invocation of gas_fscked with .x as argument
=> expands to nothing
New as(1) sees
definition of gas_fscked.x
definition of gas_fscked (independent from gas_fscked.x)
invocation of gas_fscked.x
=> expands to definitions of getuser.l, etc.

IOW, the trigger for workaround is precisely the behaviour we need to
work around.  Incidentally, this description is a couple of times
longer than patch itself...

Signed-off-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
---
 include/asm-m68k/math-emu.h |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/include/asm-m68k/math-emu.h b/include/asm-m68k/math-emu.h
index 7ac6259..d9f15f4 100644
--- a/include/asm-m68k/math-emu.h
+++ b/include/asm-m68k/math-emu.h
@@ -226,6 +226,20 @@ #define FPS_PC2		(PT_PC+10)
 	.previous
 .endm
 
+/* work around binutils idiocy */
+.macro  gas_fscked.x
+.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
+.endm
+.macro  gas_fscked x=0
+.endm
+        gas_fscked.x
 
 .macro	movestack	nr,arg1,arg2,arg3,arg4,arg5
 	.if	\nr
-- 
1.4.2.GIT


-
To unsubscribe from this list: send the line "unsubscribe linux-m68k" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Video for Linux]     [Yosemite News]     [Linux S/390]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux