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

Re: [RFC PATCH] libacpi: Fix cross building x86 on arm


  • To: Bertrand Marquis <Bertrand.Marquis@xxxxxxx>
  • From: Jan Beulich <jbeulich@xxxxxxxx>
  • Date: Tue, 23 Aug 2022 16:31:59 +0200
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=bLAxPaJh4V4gDpf7W0JAhRFKiH0NVbXs2nMsq9z3QKM=; b=T0PvxLGxSneVqZWsbDCS+C8jtjnCS3rtVjm9fF6/7fWE7SKhjX5MOiV2UK82UkyRkuXHp1YLv8Va2rE1DIx+mpgPWqYKhea49zq0bO0AzGLJzQUfUaIU46iqueaFQLhSsEPgZz16TDB7/7mcOQbzXv4hqHKzc1Bk0P0KLVEnW7MGq6FQ2t6THlsU865leFcoXE0fpl97j3tqUivnuGawRAXeUw0URHw1/3+9yoDutb2f4A4chawp9AMNdi3oUWSC0rbUcKZmoFnwnALkl9anyEB54yyjcp0kLiGW7dZ+Wlke45zzE+IDuQqMtdoTwXM2USSJqWBI2zWq5nimcd6XFg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cv9eH1Xc66bon2Pg/gI2n6CkjVWuc39XhLnEEhzhLi8YuCLJKUod90P4APDIMkRcZa0++T+3khK6lkAG399QgI1kHIjLCUCh9gYL7D/KoZr+9+SejQg8PaoN73rUpoWbiitceg8wkTWkw7oFNV6pa8AzrEDeYDwZ0Wr/4lHqSq5S8pS/DM5UaFloxWdEOufoPAdIaevdwY62G/GK22KxhzEgRydevdmwYZNLgDIgEbvEnFQCMExx7oSQc+W2wngVN18ib96SGpNrcCzLLlytp0oJzdEkyq+I7kb8a68Xt2OWH8PXD/P4F+aolnbSLW5GarI8qZ7wH7YP+SaAJBOApg==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com;
  • Cc: Stefano Stabellini <sstabellini@xxxxxxxxxx>, "julien@xxxxxxx" <julien@xxxxxxx>, Wei Liu <wl@xxxxxxx>, Anthony PERARD <anthony.perard@xxxxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Tue, 23 Aug 2022 14:32:10 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 23.08.2022 15:34, Bertrand Marquis wrote:
>> On 23 Aug 2022, at 13:33, Jan Beulich <jbeulich@xxxxxxxx> wrote:
>> On 23.08.2022 12:24, Bertrand Marquis wrote:
>>> --- a/tools/libacpi/mk_dsdt.c
>>> +++ b/tools/libacpi/mk_dsdt.c
>>> @@ -18,6 +18,16 @@
>>> #include <stdlib.h>
>>> #include <stdbool.h>
>>> #if defined(CONFIG_X86)
>>> +/*
>>> + * When building on non x86 host, arch-x86/xen.h will include xen.h which 
>>> will
>>> + * try to include the arch xen.h (for example if built on arm, x86/xen.h 
>>> will
>>> + * include xen.h which will include arch-arm.h).
>>> + * To prevent this effect, define x86 to have the proper sub arch included 
>>> when
>>> + * the compiler does not define it.
>>> + */
>>> +#if !(defined(__i386__) || defined(__x86_64__))
>>> +#define __x86_64__
>>> +#endif
>>
>> Besides being confusing this depends on the order of checks in xen.h.
>>
>>> #include <xen/arch-x86/xen.h>
>>> #include <xen/hvm/hvm_info_table.h>
>>> #elif defined(CONFIG_ARM_64)
>>
>> At the very least you will want to #undef the auxiliary define as soon
>> as practically possible.
> 
> Ack
> 
>>
>> But I think a different solution will want finding. Did you check what
>> the #include is needed for, really? I've glanced through the file
>> without being able to spot anything ... After all this is a build tool,
>> which generally can't correctly use many of the things declared in the
>> header.
> 
> As stated in the comment after the commit message, this is not a good
> solution but an hack.
> 
> Now I do not completely agree here, the tool is not really the problem
> but the headers are.

Well - the issue is the tool depending on these headers.

> There is not such an issue on arm.

Then why does the tool include xen/arch-arm.h for Arm64?

> The tool needs at least:
> HVM_MAX_VCPUS
> XEN_ACPI_CPU_MAP
> XEN_ACPI_CPU_MAP_LEN
> XEN_ACPI_GPE0_CPUHP_BIT
> 
> Which are defined in arch-x86/xen.h and hvm_info_table.h.
> 
> I am not quite sure how to get those without the current include

1) Move those #define-s to a standalone header, which the ones
currently defining them would simply include. The tool would then
include _only_ this one header.

2) Seddery on the headers, producing a local one to be used by the
tool.

Jan



 


Rackspace

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