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

[Xen-changelog] [xen master] libacpi: fix compilation when cross building the tools



commit d066b5b9ba8ca60b39127b3c9b1cd62a52307174
Author:     Julien Grall <julien.grall@xxxxxxx>
AuthorDate: Tue Nov 29 16:00:48 2016 +0100
Commit:     Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Tue Nov 29 16:00:48 2016 +0100

    libacpi: fix compilation when cross building the tools
    
    The tools (such as mk_dsdt) can be cross-built when it may not be
    desirable to build them on the target.
    
    The commit c4ac1077 "libxl/arm: Generate static ACPI DSDT table"
    introduced support of ARM64 in mk_dsdt but also break cross-building
    tools because the ACPI tables are not correct.
    
    While mk_dsdt should generate ACPI table for the target architecture, it
    currently generates the one for the host. This is because the source
    code contains reference to the host architecture (__aarch64__,
    __x86_64__, __i386__) when it should be the target architecture.
    
    Replace all __aarch64__, __x86_64__, __i386__ by the corresponding
    CONFIG_*.
    
    Also expose the CONFIG_* to the source code as the currently only
    exposed to the Makefile.
    
    Reported-by: Andrii Anisov <andrii.anisov@xxxxxxxxx>
    Suggested-by: Wei Liu <wei.liu2@xxxxxxxxxx>
    Signed-off-by: Julien Grall <julien.grall@xxxxxxx>
    Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
    Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
    Release-acked-by: Wei Liu <wei.liu2@xxxxxxxxxx>
---
 tools/libacpi/Makefile  |  5 ++++-
 tools/libacpi/mk_dsdt.c | 14 +++++++-------
 2 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/tools/libacpi/Makefile b/tools/libacpi/Makefile
index ccc32c9..6d8445d 100644
--- a/tools/libacpi/Makefile
+++ b/tools/libacpi/Makefile
@@ -27,6 +27,9 @@ DSDT_FILES ?= $(C_SRC-y)
 C_SRC = $(addprefix $(ACPI_BUILD_DIR)/, $(DSDT_FILES))
 H_SRC = $(addprefix $(ACPI_BUILD_DIR)/, ssdt_s3.h ssdt_s4.h ssdt_pm.h 
ssdt_tpm.h)
 
+MKDSDT_CFLAGS-$(CONFIG_ARM_64) = -DCONFIG_ARM_64
+MKDSDT_CFLAGS-$(CONFIG_X86) = -DCONFIG_X86
+
 # Suffix for temporary files.
 #
 # We will also use this suffix to workaround a bug in older iasl
@@ -44,7 +47,7 @@ $(H_SRC): $(ACPI_BUILD_DIR)/%.h: %.asl iasl
        rm -f $(addprefix $(ACPI_BUILD_DIR)/, $*.aml $*.hex)
  
 $(MK_DSDT): mk_dsdt.c
-       $(HOSTCC) $(HOSTCFLAGS) $(CFLAGS_xeninclude) -D__XEN_TOOLS__ -o $@ 
mk_dsdt.c
+       $(HOSTCC) $(HOSTCFLAGS) $(MKDSDT_CFLAGS-y) $(CFLAGS_xeninclude) 
-D__XEN_TOOLS__ -o $@ mk_dsdt.c
 
 $(ACPI_BUILD_DIR)/dsdt_anycpu_qemu_xen.asl: dsdt.asl dsdt_acpi_info.asl 
$(MK_DSDT)
        # Remove last bracket
diff --git a/tools/libacpi/mk_dsdt.c b/tools/libacpi/mk_dsdt.c
index 16320a9..760d81b 100644
--- a/tools/libacpi/mk_dsdt.c
+++ b/tools/libacpi/mk_dsdt.c
@@ -17,9 +17,9 @@
 #include <getopt.h>
 #include <stdlib.h>
 #include <stdbool.h>
-#if defined(__i386__) || defined(__x86_64__)
+#if defined(CONFIG_X86)
 #include <xen/hvm/hvm_info_table.h>
-#elif defined(__aarch64__)
+#elif defined(CONFIG_ARM_64)
 #include <xen/arch-arm.h>
 #endif
 
@@ -111,9 +111,9 @@ int main(int argc, char **argv)
     unsigned int slot, dev, intx, link, cpu, max_cpus;
     dm_version dm_version = QEMU_XEN_TRADITIONAL;
 
-#if defined(__i386__) || defined(__x86_64__)
+#if defined(CONFIG_X86)
     max_cpus = HVM_MAX_VCPUS;
-#elif defined(__aarch64__)
+#elif defined(CONFIG_ARM_64)
     max_cpus = GUEST_MAX_VCPUS;
 #endif
 
@@ -169,7 +169,7 @@ int main(int argc, char **argv)
     /**** Processor start ****/
     push_block("Scope", "\\_SB");
 
-#if defined(__i386__) || defined(__x86_64__)
+#ifdef CONFIG_X86
     /* MADT checksum */
     stmt("OperationRegion", "MSUM, SystemMemory, \\_SB.MSUA, 1");
     push_block("Field", "MSUM, ByteAcc, NoLock, Preserve");
@@ -193,7 +193,7 @@ int main(int argc, char **argv)
         stmt("Name", "_HID, \"ACPI0007\"");
 
         stmt("Name", "_UID, %d", cpu);
-#if defined(__aarch64__)
+#ifdef CONFIG_ARM_64
         pop_block();
         continue;
 #endif
@@ -235,7 +235,7 @@ int main(int argc, char **argv)
         pop_block();
     }
 
-#if defined(__aarch64__)
+#ifdef CONFIG_ARM_64
     pop_block();
     /**** Processor end ****/
     pop_block();
--
generated by git-patchbot for /home/xen/git/xen.git#master

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
https://lists.xenproject.org/xen-changelog

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.