]> xenbits.xensource.com Git - people/tklengyel/xen.git/commitdiff
xen: Fix Clang -Wunicode diagnostic when building asm-macros
authorAndrew Cooper <andrew.cooper3@citrix.com>
Fri, 3 Mar 2023 07:01:21 +0000 (08:01 +0100)
committerJan Beulich <jbeulich@suse.com>
Fri, 3 Mar 2023 07:01:21 +0000 (08:01 +0100)
While trying to work around a different Clang-IAS bug (parent changeset), I
stumbled onto:

  In file included from arch/x86/asm-macros.c:3:
  ./arch/x86/include/asm/spec_ctrl_asm.h:144:19: error: \u used with
  no following hex digits; treating as '\' followed by identifier [-Werror,-Wunicode]
  .L\@_fill_rsb_loop\uniq:
                    ^

It turns out that Clang -E is sensitive to the file extension of the source
file it is processing.  Furthermore, C explicitly permits the use of \u
escapes in identifier names, so the diagnostic would be reasonable in
principle if we trying to compile the result.

asm-macros should really have been .S from the outset, as it is ultimately
generating assembly, not C.  Rename it, which causes Clang not to complain.

We need to introduce rules for generating a .i file from .S, and substituting
c_flags for a_flags lets us drop the now-redundant -D__ASSEMBLY__.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
master commit: 53f0d02040b1df08f0589f162790ca376e1c2040
master date: 2023-02-24 17:44:29 +0000

xen/Rules.mk
xen/arch/x86/Makefile
xen/arch/x86/asm-macros.S [new file with mode: 0644]
xen/arch/x86/asm-macros.c [deleted file]

index d6b7cec0a88230a96e6392b902b7e64e65fff514..59072ae8dff2fa85a67bb271438bcbb29dd996bd 100644 (file)
@@ -273,6 +273,9 @@ $(filter %.init.o,$(obj-y) $(obj-bin-y) $(extra-y)): $(obj)/%.init.o: $(obj)/%.o
 quiet_cmd_cpp_i_c = CPP     $@
 cmd_cpp_i_c = $(CPP) $(call cpp_flags,$(c_flags)) -MQ $@ -o $@ $<
 
+quiet_cmd_cpp_i_S = CPP     $@
+cmd_cpp_i_S = $(CPP) $(call cpp_flags,$(a_flags)) -MQ $@ -o $@ $<
+
 quiet_cmd_cc_s_c = CC      $@
 cmd_cc_s_c = $(CC) $(filter-out -Wa$(comma)%,$(c_flags)) -S $< -o $@
 
@@ -282,6 +285,9 @@ cmd_cpp_s_S = $(CPP) $(call cpp_flags,$(a_flags)) -MQ $@ -o $@ $<
 $(obj)/%.i: $(src)/%.c FORCE
        $(call if_changed_dep,cpp_i_c)
 
+$(obj)/%.i: $(src)/%.S FORCE
+       $(call if_changed_dep,cpp_i_S)
+
 $(obj)/%.s: $(src)/%.c FORCE
        $(call if_changed_dep,cc_s_c)
 
index 177a2ff74272108cf04c4883fdc5bbdb3face6ce..5accbe4c6746df91e894c968e0d1df24e80ad551 100644 (file)
@@ -240,7 +240,7 @@ $(obj)/efi/buildid.o $(obj)/efi/relocs-dummy.o: ;
 .PHONY: include
 include: $(objtree)/arch/x86/include/asm/asm-macros.h
 
-$(obj)/asm-macros.i: CFLAGS-y += -D__ASSEMBLY__ -P
+$(obj)/asm-macros.i: CFLAGS-y += -P
 
 $(objtree)/arch/x86/include/asm/asm-macros.h: $(obj)/asm-macros.i $(src)/Makefile
        $(call filechk,asm-macros.h)
diff --git a/xen/arch/x86/asm-macros.S b/xen/arch/x86/asm-macros.S
new file mode 100644 (file)
index 0000000..891d86c
--- /dev/null
@@ -0,0 +1,3 @@
+#include <asm/asm-defns.h>
+#include <asm/alternative-asm.h>
+#include <asm/spec_ctrl_asm.h>
diff --git a/xen/arch/x86/asm-macros.c b/xen/arch/x86/asm-macros.c
deleted file mode 100644 (file)
index 891d86c..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#include <asm/asm-defns.h>
-#include <asm/alternative-asm.h>
-#include <asm/spec_ctrl_asm.h>