Re: Current head x86_64 breakage - csum-copy_64.S

From: Roland Dreier
Date: Mon Jul 14 2008 - 21:11:35 EST


> AS arch/x86/lib/csum-copy_64.o
> arch/x86/lib/csum-copy_64.S: Assembler messages:
> arch/x86/lib/csum-copy_64.S:48: Error: Macro `ignore' was already defined

Yes, the culprit seems to be 70f1bba4 ("x86: use ignore macro instead of
hash comment"), which introduces the ignore macro in dwarf2.h, which
collides with the macro already in csum-copy_64.S.

Perhaps something like the patch below?

---

[PATCH] x86: Rename "ignore" macro in <asm/dwarf2.h> to avoid collision

Commit 70f1bba4 ("x86: use ignore macro instead of hash comment") breaks
the 64-bit x86 build on toolchains that have CONFIG_AS_CFI undefined with:

arch/x86/lib/csum-copy_64.S:48: Error: Macro `ignore' was already defined

because <asm/dwarf2.h> now uses the ignore macro name itself. Fix this
by changing to __cfi_ignore in dwarf2.h.

Signed-off-by: Roland Dreier <rolandd@xxxxxxxxx>
---

include/asm-x86/dwarf2.h | 30 +++++++++++++++---------------
1 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/include/asm-x86/dwarf2.h b/include/asm-x86/dwarf2.h
index 0bfe250..1a283d5 100644
--- a/include/asm-x86/dwarf2.h
+++ b/include/asm-x86/dwarf2.h
@@ -38,23 +38,23 @@

/* Due to the structure of pre-exisiting code, don't use assembler line
comment character # to ignore the arguments. Instead, use a dummy macro. */
-.macro ignore a=0, b=0, c=0, d=0
+.macro __cfi_ignore a=0, b=0, c=0, d=0
.endm

-#define CFI_STARTPROC ignore
-#define CFI_ENDPROC ignore
-#define CFI_DEF_CFA ignore
-#define CFI_DEF_CFA_REGISTER ignore
-#define CFI_DEF_CFA_OFFSET ignore
-#define CFI_ADJUST_CFA_OFFSET ignore
-#define CFI_OFFSET ignore
-#define CFI_REL_OFFSET ignore
-#define CFI_REGISTER ignore
-#define CFI_RESTORE ignore
-#define CFI_REMEMBER_STATE ignore
-#define CFI_RESTORE_STATE ignore
-#define CFI_UNDEFINED ignore
-#define CFI_SIGNAL_FRAME ignore
+#define CFI_STARTPROC __cfi_ignore
+#define CFI_ENDPROC __cfi_ignore
+#define CFI_DEF_CFA __cfi_ignore
+#define CFI_DEF_CFA_REGISTER __cfi_ignore
+#define CFI_DEF_CFA_OFFSET __cfi_ignore
+#define CFI_ADJUST_CFA_OFFSET __cfi_ignore
+#define CFI_OFFSET __cfi_ignore
+#define CFI_REL_OFFSET __cfi_ignore
+#define CFI_REGISTER __cfi_ignore
+#define CFI_RESTORE __cfi_ignore
+#define CFI_REMEMBER_STATE __cfi_ignore
+#define CFI_RESTORE_STATE __cfi_ignore
+#define CFI_UNDEFINED __cfi_ignore
+#define CFI_SIGNAL_FRAME __cfi_ignore

#endif

--
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/