diff mbox

[for-4.7] build/xen: fix assembler instruction tests

Message ID 1461768147-24374-1-git-send-email-roger.pau@citrix.com (mailing list archive)
State New, archived
Headers show

Commit Message

Roger Pau Monne April 27, 2016, 2:42 p.m. UTC
The current test performed in order to check if the assembler supports
certain instructions doesn't take into account the value of AFLAGS, which
when using clang contains the option that disables the integrated assembler
due to the lack of features.

As a result of this, the current instruction tests were performed against the
integrated assembler, but then at build time the non-integrated assembler
was used. If both have feature-parity, this is a non-issue, but we cannot
assume this.

Fix this by passing AFLAGS in the instruction test, and including the arch
Rules.mk makefile after AFLAGS is set.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: George Dunlap <George.Dunlap@eu.citrix.com>
Cc: Ian Jackson <ian.jackson@eu.citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Tim Deegan <tim@xen.org>
Cc: Wei Liu <wei.liu2@citrix.com>
---
 Config.mk    | 2 +-
 xen/Rules.mk | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

Comments

Wei Liu April 27, 2016, 3:20 p.m. UTC | #1
On Wed, Apr 27, 2016 at 04:42:27PM +0200, Roger Pau Monne wrote:
> The current test performed in order to check if the assembler supports
> certain instructions doesn't take into account the value of AFLAGS, which
> when using clang contains the option that disables the integrated assembler
> due to the lack of features.
> 
> As a result of this, the current instruction tests were performed against the
> integrated assembler, but then at build time the non-integrated assembler
> was used. If both have feature-parity, this is a non-issue, but we cannot
> assume this.
> 
> Fix this by passing AFLAGS in the instruction test, and including the arch
> Rules.mk makefile after AFLAGS is set.
> 
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

Reviewed-by: Wei Liu <wei.liu2@citrix.com>
Jan Beulich April 28, 2016, 10:38 a.m. UTC | #2
>>> On 27.04.16 at 16:42, <roger.pau@citrix.com> wrote:
> The current test performed in order to check if the assembler supports
> certain instructions doesn't take into account the value of AFLAGS, which
> when using clang contains the option that disables the integrated assembler
> due to the lack of features.
> 
> As a result of this, the current instruction tests were performed against 
> the
> integrated assembler, but then at build time the non-integrated assembler
> was used. If both have feature-parity, this is a non-issue, but we cannot
> assume this.
> 
> Fix this by passing AFLAGS in the instruction test, and including the arch
> Rules.mk makefile after AFLAGS is set.
> 
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>

Feels a little fragile at first, but looks okay, so:
Reviewed-by: Jan Beulich <jbeulich@suse.com>
diff mbox

Patch

diff --git a/Config.mk b/Config.mk
index 4a5ebed..9b097c9 100644
--- a/Config.mk
+++ b/Config.mk
@@ -132,7 +132,7 @@  $(eval $(check-y))
 # as-insn: Check whether assembler supports an instruction.
 # Usage: cflags-y += $(call as-insn "insn",option-yes,option-no)
 as-insn = $(if $(shell echo 'void _(void) { asm volatile ( $(2) ); }' \
-                       | $(1) -c -x c -o /dev/null - 2>&1),$(4),$(3))
+                       | $(1) $(AFLAGS) -c -x c -o /dev/null - 2>&1),$(4),$(3))
 
 # as-insn-check: Add an option to compilation flags, but only if insn is
 #                supported by assembler.
diff --git a/xen/Rules.mk b/xen/Rules.mk
index 7183d69..961d533 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -38,8 +38,6 @@  override TARGET_ARCH     := $(shell echo $(XEN_TARGET_ARCH) | \
 
 TARGET := $(BASEDIR)/xen
 
-include $(BASEDIR)/arch/$(TARGET_ARCH)/Rules.mk
-
 # Note that link order matters!
 ALL_OBJS-y               += $(BASEDIR)/common/built_in.o
 ALL_OBJS-y               += $(BASEDIR)/drivers/built_in.o
@@ -92,6 +90,8 @@  LDFLAGS += $(LDFLAGS_DIRECT)
 
 LDFLAGS += $(LDFLAGS-y)
 
+include $(BASEDIR)/arch/$(TARGET_ARCH)/Rules.mk
+
 include Makefile
 
 DEPS = .*.d