build/xen: fix assembler instruction tests

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>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
This commit is contained in:
Roger Pau Monné authored and Jan Beulich committed 2016-04-28 15:07:37 +02:00
1 parent d22c9bf7c3
commit 7fb252bd41
2 files changed
+3 -3

No files matched your search

+1 -1
View File
@@ -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.
+2 -2
View File
@@ -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
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.